{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3740f879",
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "from funcs import *\n",
    "期货前缀ss = get_期货前缀ss(False)\n",
    "df_所有合约 = get_df_所有合约()\n",
    "code_delist_date_dict = get_code_delist_date_dict(df_所有合约)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6176c58e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "5b7fdff6",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a95b04f8db3549719f8bc603ab0c4870",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/77 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddds = []\n",
    "for 期货前缀 in tqdm(期货前缀ss):\n",
    "    ddd = get_ddd(期货前缀,code_delist_date_dict)\n",
    "    ddds.append(ddd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 403,
   "id": "9cfc4936",
   "metadata": {},
   "outputs": [],
   "source": [
    "s_date = '2010-01-01'\n",
    "e_date = '2023-12-30'\n",
    "\n",
    "cols = ['交易额0','交易额1',\n",
    "        '收益率0','收益率1',\n",
    "        '展期率01','展期率02',\n",
    "        '基差率01','基差率02',\n",
    "        '基差RSI','基差均值',\n",
    "        '跳开0','跳开1']\n",
    "\n",
    "for col in cols:\n",
    "    globals()[col] = pd.concat([x[col] for x in ddds],axis=1,keys=期货前缀ss)[s_date:e_date]\n",
    "    \n",
    "收益率m = (收益率0 + 收益率1)/2\n",
    "展期率01变化 = 展期率01.diff()\n",
    "展期率02变化 = 展期率02.diff()\n",
    "基差率01变化 = 基差率01.diff()\n",
    "基差率02变化 = 基差率02.diff()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 404,
   "id": "db117b97",
   "metadata": {},
   "outputs": [],
   "source": [
    "tp = 'M'\n",
    "tp1 = 'Q-JAN'\n",
    "tp2 = 'Q-FEB'\n",
    "tp3 = 'Q-MAR'\n",
    "\n",
    "con1 = 交易额0.rolling(120).mean() > 500000\n",
    "con2 = (交易额0+交易额1).rolling(120).mean().rank(1,pct=True) > 0.2\n",
    "交易额过滤条件 = con1 & con2\n",
    "过滤因子 = 交易额过滤条件.resample(tp).last()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 405,
   "id": "c9c61676",
   "metadata": {},
   "outputs": [],
   "source": [
    "类别名s = ['展期率01','展期率02','基差率01','基差率02','基差RSI','基差均值']\n",
    "参数s = ['季度一月','季度二月','季度三月','滚动21','滚动63','滚动126','滚动252','滚动378']\n",
    "季度tp字典 = {\n",
    "    '季度一月':tp1,\n",
    "    '季度二月':tp2,\n",
    "    '季度三月':tp3,\n",
    "}\n",
    "滚动tp字典 = {\n",
    "    '滚动21':21,\n",
    "    '滚动63':63,\n",
    "    '滚动126':126,\n",
    "    '滚动252':252,\n",
    "    '滚动378':378,\n",
    "}\n",
    "\n",
    "因子库1 = []\n",
    "for 类别名 in 类别名s:\n",
    "    for 参数 in 参数s:\n",
    "        if '季度' in 参数:\n",
    "            globals()[f'{类别名}{参数}'] = \\\n",
    "            globals()[类别名].resample(季度tp字典.get(参数)).mean().\\\n",
    "            resample(tp).last().fillna(method='ffill').\\\n",
    "            where(过滤因子)\n",
    "        else:\n",
    "            globals()[f'{类别名}{参数}'] = \\\n",
    "            globals()[类别名].rolling(滚动tp字典.get(参数)).mean().\\\n",
    "            resample(tp).last().\\\n",
    "            where(过滤因子)\n",
    "            \n",
    "        因子库1.append(f'{类别名}{参数}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 486,
   "id": "8b406e28",
   "metadata": {},
   "outputs": [],
   "source": [
    "因子 = 展期率01.diff().rolling(130).mean().resample(tp).last().where(过滤因子)\n",
    "xx = get_因子日度收益(因子,'xxx',收益率0,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 487,
   "id": "15158548",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.6727763740350922"
      ]
     },
     "execution_count": 487,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cal_sp(xx)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 489,
   "id": "bf0d6c90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x17108c5fbb0>"
      ]
     },
     "execution_count": 489,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx['2023-01-01':].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "70749aad",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "55884379",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "494693e2",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 406,
   "id": "372c2332",
   "metadata": {},
   "outputs": [],
   "source": [
    "类别名s = ['收益率0','收益率m','跳开0','跳开1','展期率01变化','基差率01变化']\n",
    "参数1s = ['均值','波动','偏度','峰度','RSI']\n",
    "参数2s = ['滚动21','滚动63','滚动126','滚动252','滚动378','滚动504']\n",
    "参数3s = [f'{i}月' for i in range(1,1+11)]\n",
    "参数4s = ['季度一月','季度二月','季度三月']\n",
    "\n",
    "季度tp字典 = {\n",
    "    '季度一月':tp1,\n",
    "    '季度二月':tp2,\n",
    "    '季度三月':tp3,\n",
    "}\n",
    "\n",
    "滚动tp字典 = {\n",
    "    '滚动21':21,\n",
    "    '滚动63':63,\n",
    "    '滚动126':126,\n",
    "    '滚动252':252,\n",
    "    '滚动378':378,\n",
    "    '滚动504':504,\n",
    "    '滚动630':630,\n",
    "    '滚动756':756,\n",
    "}\n",
    "\n",
    "因子库2 = []\n",
    "for 类别名 in 类别名s:\n",
    "    for 参数1 in 参数1s:\n",
    "        for 参数2 in 参数2s:\n",
    "            if 参数1 == '均值':\n",
    "                globals()[f'{类别名}{参数1}{参数2}'] = \\\n",
    "                globals()[类别名].rolling(滚动tp字典.get(参数2)).mean().\\\n",
    "                resample(tp).last().\\\n",
    "                where(过滤因子)\n",
    "            elif 参数1 == '波动':\n",
    "                globals()[f'{类别名}{参数1}{参数2}'] = \\\n",
    "                globals()[类别名].rolling(滚动tp字典.get(参数2)).std().\\\n",
    "                resample(tp).last().\\\n",
    "                where(过滤因子)\n",
    "            elif 参数1 == '偏度':\n",
    "                globals()[f'{类别名}{参数1}{参数2}'] = \\\n",
    "                globals()[类别名].rolling(滚动tp字典.get(参数2)).skew().\\\n",
    "                resample(tp).last().\\\n",
    "                where(过滤因子)\n",
    "            elif 参数1 == '峰度':\n",
    "                globals()[f'{类别名}{参数1}{参数2}'] = \\\n",
    "                globals()[类别名].rolling(滚动tp字典.get(参数2)).kurt().\\\n",
    "                resample(tp).last().\\\n",
    "                where(过滤因子)\n",
    "            elif 参数1 == 'RSI':\n",
    "                globals()[f'{类别名}{参数1}{参数2}'] = \\\n",
    "                ((globals()[类别名]*(globals()[类别名]>0)).rolling(滚动tp字典.get(参数2)).sum()/\\\n",
    "                globals()[类别名].abs().rolling(滚动tp字典.get(参数2)).sum()).\\\n",
    "                resample(tp).last().\\\n",
    "                where(过滤因子)\n",
    "            因子库2.append(f'{类别名}{参数1}{参数2}')\n",
    "                \n",
    "for 类别名 in 类别名s:\n",
    "    for 参数3 in 参数3s:\n",
    "        n = int(参数3.strip('月'))\n",
    "        globals()[f'{类别名}双均线{参数3}'] = \\\n",
    "        (globals()[类别名].rolling(21*n).mean() - globals()[类别名].rolling(21*12).mean()).\\\n",
    "        resample(tp).last().\\\n",
    "        where(过滤因子)\n",
    "        因子库2.append(f'{类别名}双均线{参数3}')\n",
    "        \n",
    "        \n",
    "for 类别名 in 类别名s:\n",
    "    for 参数4 in 参数4s:\n",
    "        globals()[f'{类别名}{参数4}'] = \\\n",
    "        globals()[类别名].resample(季度tp字典.get(参数4)).mean().\\\n",
    "        resample(tp).last().fillna(method='ffill').\\\n",
    "        where(过滤因子)\n",
    "        因子库2.append(f'{类别名}{参数4}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 407,
   "id": "477a341e",
   "metadata": {},
   "outputs": [],
   "source": [
    "ddd1 = pd.concat([get_因子日度收益(globals()[因子名],因子名,收益率0,1) for 因子名 in 因子库1],axis=1)\n",
    "ddd2 = pd.concat([get_因子日度收益(globals()[因子名],因子名,收益率0,1) for 因子名 in 因子库2],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "85bd9839",
   "metadata": {},
   "outputs": [],
   "source": [
    "def cal_sp(x):\n",
    "    return (250**0.5)*x.mean()/x.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "ea1e5463",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['跳开0均值滚动21',\n",
       " '跳开0均值滚动63',\n",
       " '跳开0均值滚动126',\n",
       " '跳开0均值滚动252',\n",
       " '跳开0均值滚动378',\n",
       " '跳开0均值滚动504',\n",
       " '跳开0均值滚动630',\n",
       " '跳开0均值滚动756',\n",
       " '跳开0波动滚动21',\n",
       " '跳开0波动滚动63',\n",
       " '跳开0波动滚动126',\n",
       " '跳开0波动滚动252',\n",
       " '跳开0波动滚动378',\n",
       " '跳开0波动滚动504',\n",
       " '跳开0波动滚动630',\n",
       " '跳开0波动滚动756',\n",
       " '跳开0偏度滚动21',\n",
       " '跳开0偏度滚动63',\n",
       " '跳开0偏度滚动126',\n",
       " '跳开0偏度滚动252',\n",
       " '跳开0偏度滚动378',\n",
       " '跳开0偏度滚动504',\n",
       " '跳开0偏度滚动630',\n",
       " '跳开0偏度滚动756',\n",
       " '跳开0峰度滚动21',\n",
       " '跳开0峰度滚动63',\n",
       " '跳开0峰度滚动126',\n",
       " '跳开0峰度滚动252',\n",
       " '跳开0峰度滚动378',\n",
       " '跳开0峰度滚动504',\n",
       " '跳开0峰度滚动630',\n",
       " '跳开0峰度滚动756',\n",
       " '跳开0RSI滚动21',\n",
       " '跳开0RSI滚动63',\n",
       " '跳开0RSI滚动126',\n",
       " '跳开0RSI滚动252',\n",
       " '跳开0RSI滚动378',\n",
       " '跳开0RSI滚动504',\n",
       " '跳开0RSI滚动630',\n",
       " '跳开0RSI滚动756',\n",
       " '跳开0双均线1月',\n",
       " '跳开0双均线2月',\n",
       " '跳开0双均线3月',\n",
       " '跳开0双均线4月',\n",
       " '跳开0双均线5月',\n",
       " '跳开0双均线6月',\n",
       " '跳开0双均线7月',\n",
       " '跳开0双均线8月',\n",
       " '跳开0双均线9月',\n",
       " '跳开0双均线10月',\n",
       " '跳开0双均线11月',\n",
       " '跳开0季度一月',\n",
       " '跳开0季度二月',\n",
       " '跳开0季度三月']"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[x for x in 因子库2 if '跳开0' in x]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 423,
   "id": "3289b59b",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "基差率01变化波动滚动21     0.428923\n",
       "收益率0均值滚动504       0.447443\n",
       "展期率01变化波动滚动252    0.447473\n",
       "基差率01变化偏度滚动378    0.447918\n",
       "收益率m均值滚动252       0.455720\n",
       "展期率01变化波动滚动63     0.475130\n",
       "基差率01变化偏度滚动504    0.483325\n",
       "收益率0均值滚动252       0.483777\n",
       "基差率01变化双均线11月     0.491603\n",
       "展期率01变化波动滚动504    0.494084\n",
       "展期率01变化波动滚动378    0.541140\n",
       "收益率mRSI滚动378      0.553268\n",
       "跳开0峰度滚动252        0.555895\n",
       "收益率m双均线11月        0.569313\n",
       "展期率01变化均值滚动504    0.589745\n",
       "收益率0RSI滚动378      0.595066\n",
       "展期率01变化双均线11月     0.606278\n",
       "收益率m均值滚动378       0.619915\n",
       "收益率0均值滚动378       0.621438\n",
       "收益率0双均线11月        0.632631\n",
       "dtype: float64"
      ]
     },
     "execution_count": 423,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "the_date = '2024-01-01'\n",
    "((250**0.5)*ddd2[:the_date].mean()/ddd2[:the_date].std()).sort_values()[-20:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 418,
   "id": "516a2d1c",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>AG</th>\n",
       "      <th>AL</th>\n",
       "      <th>AP</th>\n",
       "      <th>AU</th>\n",
       "      <th>B</th>\n",
       "      <th>BB</th>\n",
       "      <th>BC</th>\n",
       "      <th>BU</th>\n",
       "      <th>C</th>\n",
       "      <th>...</th>\n",
       "      <th>TS</th>\n",
       "      <th>UR</th>\n",
       "      <th>V</th>\n",
       "      <th>WH</th>\n",
       "      <th>WR</th>\n",
       "      <th>WS</th>\n",
       "      <th>WT</th>\n",
       "      <th>Y</th>\n",
       "      <th>ZC</th>\n",
       "      <th>ZN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-01-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-28</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-03-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-30</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-05-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-08-31</th>\n",
       "      <td>0.000057</td>\n",
       "      <td>0.000038</td>\n",
       "      <td>-0.000073</td>\n",
       "      <td>0.000344</td>\n",
       "      <td>0.000095</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000564</td>\n",
       "      <td>-0.000232</td>\n",
       "      <td>...</td>\n",
       "      <td>5.679723e-06</td>\n",
       "      <td>-0.000293</td>\n",
       "      <td>-0.000082</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000154</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-09-30</th>\n",
       "      <td>0.000164</td>\n",
       "      <td>-0.000085</td>\n",
       "      <td>0.000042</td>\n",
       "      <td>0.000027</td>\n",
       "      <td>-0.000040</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000165</td>\n",
       "      <td>-0.000081</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.275592e-06</td>\n",
       "      <td>0.000358</td>\n",
       "      <td>0.000262</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000147</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-10-31</th>\n",
       "      <td>0.000114</td>\n",
       "      <td>-0.000369</td>\n",
       "      <td>-0.000117</td>\n",
       "      <td>0.000153</td>\n",
       "      <td>-0.000106</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000216</td>\n",
       "      <td>0.000019</td>\n",
       "      <td>...</td>\n",
       "      <td>2.245941e-05</td>\n",
       "      <td>-0.000091</td>\n",
       "      <td>-0.000017</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000114</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-11-30</th>\n",
       "      <td>0.000150</td>\n",
       "      <td>-0.000168</td>\n",
       "      <td>0.000065</td>\n",
       "      <td>-0.000157</td>\n",
       "      <td>0.000103</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000006</td>\n",
       "      <td>-0.000063</td>\n",
       "      <td>...</td>\n",
       "      <td>-3.209653e-06</td>\n",
       "      <td>-0.000202</td>\n",
       "      <td>-0.000367</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000114</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>-0.000143</td>\n",
       "      <td>-0.000015</td>\n",
       "      <td>0.000051</td>\n",
       "      <td>-0.000297</td>\n",
       "      <td>-0.000101</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000083</td>\n",
       "      <td>-0.000140</td>\n",
       "      <td>...</td>\n",
       "      <td>3.240564e-07</td>\n",
       "      <td>-0.000023</td>\n",
       "      <td>-0.000105</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000008</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000035</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>168 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                   A        AG        AL        AP        AU   B  BB  BC  \\\n",
       "t                                                                          \n",
       "2010-01-31       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-02-28       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-03-31       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-04-30       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-05-31       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "...              ...       ...       ...       ...       ...  ..  ..  ..   \n",
       "2023-08-31  0.000057  0.000038 -0.000073  0.000344  0.000095 NaN NaN NaN   \n",
       "2023-09-30  0.000164 -0.000085  0.000042  0.000027 -0.000040 NaN NaN NaN   \n",
       "2023-10-31  0.000114 -0.000369 -0.000117  0.000153 -0.000106 NaN NaN NaN   \n",
       "2023-11-30  0.000150 -0.000168  0.000065 -0.000157  0.000103 NaN NaN NaN   \n",
       "2023-12-31 -0.000143 -0.000015  0.000051 -0.000297 -0.000101 NaN NaN NaN   \n",
       "\n",
       "                  BU         C  ...            TS        UR         V  WH  WR  \\\n",
       "t                               ...                                             \n",
       "2010-01-31       NaN       NaN  ...           NaN       NaN       NaN NaN NaN   \n",
       "2010-02-28       NaN       NaN  ...           NaN       NaN       NaN NaN NaN   \n",
       "2010-03-31       NaN       NaN  ...           NaN       NaN       NaN NaN NaN   \n",
       "2010-04-30       NaN       NaN  ...           NaN       NaN       NaN NaN NaN   \n",
       "2010-05-31       NaN       NaN  ...           NaN       NaN       NaN NaN NaN   \n",
       "...              ...       ...  ...           ...       ...       ...  ..  ..   \n",
       "2023-08-31  0.000564 -0.000232  ...  5.679723e-06 -0.000293 -0.000082 NaN NaN   \n",
       "2023-09-30 -0.000165 -0.000081  ... -1.275592e-06  0.000358  0.000262 NaN NaN   \n",
       "2023-10-31  0.000216  0.000019  ...  2.245941e-05 -0.000091 -0.000017 NaN NaN   \n",
       "2023-11-30  0.000006 -0.000063  ... -3.209653e-06 -0.000202 -0.000367 NaN NaN   \n",
       "2023-12-31 -0.000083 -0.000140  ...  3.240564e-07 -0.000023 -0.000105 NaN NaN   \n",
       "\n",
       "            WS  WT         Y  ZC        ZN  \n",
       "t                                           \n",
       "2010-01-31 NaN NaN       NaN NaN       NaN  \n",
       "2010-02-28 NaN NaN       NaN NaN       NaN  \n",
       "2010-03-31 NaN NaN       NaN NaN       NaN  \n",
       "2010-04-30 NaN NaN       NaN NaN       NaN  \n",
       "2010-05-31 NaN NaN       NaN NaN       NaN  \n",
       "...         ..  ..       ...  ..       ...  \n",
       "2023-08-31 NaN NaN  0.000154 NaN -0.000062  \n",
       "2023-09-30 NaN NaN -0.000147 NaN -0.000150  \n",
       "2023-10-31 NaN NaN  0.000114 NaN -0.000053  \n",
       "2023-11-30 NaN NaN  0.000114 NaN -0.000003  \n",
       "2023-12-31 NaN NaN -0.000008 NaN -0.000035  \n",
       "\n",
       "[168 rows x 77 columns]"
      ]
     },
     "execution_count": 418,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "col1 = ['收益率0双均线11月','收益率0均值滚动378','']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 426,
   "id": "8e149b59",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['收益率0均值滚动21', '收益率0均值滚动63', '收益率0均值滚动126', '收益率0均值滚动252', '收益率0均值滚动378',\n",
       "       '收益率0均值滚动504', '收益率0波动滚动21', '收益率0波动滚动63', '收益率0波动滚动126', '收益率0波动滚动252',\n",
       "       ...\n",
       "       '跳开0季度三月', '跳开1季度一月', '跳开1季度二月', '跳开1季度三月', '展期率01变化季度一月',\n",
       "       '展期率01变化季度二月', '展期率01变化季度三月', '基差率01变化季度一月', '基差率01变化季度二月',\n",
       "       '基差率01变化季度三月'],\n",
       "      dtype='object', length=264)"
      ]
     },
     "execution_count": 426,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddd2.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d6f46eda",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 433,
   "id": "069265c0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1710aa66220>"
      ]
     },
     "execution_count": 433,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd2['展期率01变化均值滚动252'][:the_date].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "93ef7a2e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1493ccf1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 410,
   "id": "385af281",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "展期率01变化偏度滚动126   -1.100216\n",
       "展期率01变化偏度滚动63    -1.086518\n",
       "收益率m双均线7月        -0.876474\n",
       "跳开0季度三月          -0.766253\n",
       "展期率01变化偏度滚动504   -0.738327\n",
       "收益率m双均线8月        -0.722334\n",
       "收益率0双均线7月        -0.693657\n",
       "收益率0双均线6月        -0.689919\n",
       "收益率m双均线6月        -0.684932\n",
       "展期率01变化均值滚动126   -0.676158\n",
       "收益率0双均线5月        -0.667263\n",
       "跳开0RSI滚动126      -0.667101\n",
       "收益率0双均线9月        -0.652229\n",
       "跳开1季度三月          -0.650282\n",
       "收益率m双均线9月        -0.629193\n",
       "收益率m双均线5月        -0.626686\n",
       "收益率0偏度滚动378      -0.622264\n",
       "跳开0峰度滚动21        -0.619603\n",
       "收益率0偏度滚动126      -0.615611\n",
       "收益率0双均线8月        -0.607113\n",
       "dtype: float64"
      ]
     },
     "execution_count": 410,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "((250**0.5)*ddd2[:the_date].mean()/ddd2[:the_date].std()).sort_values()[:20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6abe3e64",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0f49474c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d3e17c05",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e5e9e7f4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "f490134b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x17179cf5c40>"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd2['跳开0峰度滚动63'].cumsum().plot()\n",
    "ddd2['跳开0季度一月'].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "cd80a486",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>跳开0偏度滚动252</th>\n",
       "      <th>跳开0季度二月</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>跳开0偏度滚动252</th>\n",
       "      <td>1.00000</td>\n",
       "      <td>0.09225</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>跳开0季度二月</th>\n",
       "      <td>0.09225</td>\n",
       "      <td>1.00000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            跳开0偏度滚动252  跳开0季度二月\n",
       "跳开0偏度滚动252     1.00000  0.09225\n",
       "跳开0季度二月        0.09225  1.00000"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([ddd2['跳开0偏度滚动252'],ddd2['跳开0季度二月']],axis=1).corr('spearman')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c323ea54",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 415,
   "id": "2e18efca",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.4100876575187713\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x171082c9fd0>"
      ]
     },
     "execution_count": 415,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rrr = ddd2.resample('M').sum().shift(-1)\n",
    "xxx = (ddd2*(ddd2>0)).rolling(5000,min_periods=1).sum()/ddd2.abs().rolling(5000,min_periods=1).sum()\n",
    "# xxx = ddd2.rolling(5000,min_periods=1).mean()/ddd2.rolling(5000,min_periods=1).std()\n",
    "xxx = xxx.rank(1,pct=True).resample('M').last()\n",
    "xxx = (xxx > 0.9)*1 + (xxx < 0.1)*-1\n",
    "ret = xxx*rrr\n",
    "ret = ret.sum(1)/(xxx!=0).sum(1)\n",
    "ret = ret['2018-01-01':]\n",
    "print(cal_sp(ret))\n",
    "ret.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 416,
   "id": "8cff6919",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5280237502351266"
      ]
     },
     "execution_count": 416,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(12**0.5)*ret.dropna().mean()/ret.dropna().std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 417,
   "id": "ccc82ff8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "t\n",
       "2018-01-31    0.010539\n",
       "2018-02-28   -0.006924\n",
       "2018-03-31    0.006740\n",
       "2018-04-30    0.003767\n",
       "2018-05-31    0.004322\n",
       "                ...   \n",
       "2023-08-31    0.004516\n",
       "2023-09-30   -0.000012\n",
       "2023-10-31    0.001795\n",
       "2023-11-30    0.001570\n",
       "2023-12-31    0.000000\n",
       "Freq: M, Length: 72, dtype: float64"
      ]
     },
     "execution_count": 417,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 397,
   "id": "9e27dfe7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>收益率0均值滚动21</th>\n",
       "      <th>收益率0均值滚动63</th>\n",
       "      <th>收益率0均值滚动126</th>\n",
       "      <th>收益率0均值滚动252</th>\n",
       "      <th>收益率0均值滚动378</th>\n",
       "      <th>收益率0均值滚动504</th>\n",
       "      <th>收益率0波动滚动21</th>\n",
       "      <th>收益率0波动滚动63</th>\n",
       "      <th>收益率0波动滚动126</th>\n",
       "      <th>收益率0波动滚动252</th>\n",
       "      <th>...</th>\n",
       "      <th>跳开0季度三月</th>\n",
       "      <th>跳开1季度一月</th>\n",
       "      <th>跳开1季度二月</th>\n",
       "      <th>跳开1季度三月</th>\n",
       "      <th>展期率01变化季度一月</th>\n",
       "      <th>展期率01变化季度二月</th>\n",
       "      <th>展期率01变化季度三月</th>\n",
       "      <th>基差率01变化季度一月</th>\n",
       "      <th>基差率01变化季度二月</th>\n",
       "      <th>基差率01变化季度三月</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-02-28</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-03-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-30</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-05-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-06-30</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-08-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-09-30</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-10-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-11-30</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>167 rows × 264 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            收益率0均值滚动21  收益率0均值滚动63  收益率0均值滚动126  收益率0均值滚动252  收益率0均值滚动378  \\\n",
       "t                                                                           \n",
       "2010-02-28           0           0            0            0            0   \n",
       "2010-03-31           0           0            0            0            0   \n",
       "2010-04-30           0           0            0            0            0   \n",
       "2010-05-31           0           0            0            0            0   \n",
       "2010-06-30           0           0            0            0            0   \n",
       "...                ...         ...          ...          ...          ...   \n",
       "2023-08-31           0           0            0            1            1   \n",
       "2023-09-30           0           0            0            1            1   \n",
       "2023-10-31           0           0            0            1            1   \n",
       "2023-11-30           0           0            0            1            1   \n",
       "2023-12-31           0           0            0            1            1   \n",
       "\n",
       "            收益率0均值滚动504  收益率0波动滚动21  收益率0波动滚动63  收益率0波动滚动126  收益率0波动滚动252  \\\n",
       "t                                                                           \n",
       "2010-02-28            0           0           0            0            0   \n",
       "2010-03-31            0           0           0            0            0   \n",
       "2010-04-30            0           0           0            0            0   \n",
       "2010-05-31            0           0           0            0            0   \n",
       "2010-06-30            0           0           0            0            0   \n",
       "...                 ...         ...         ...          ...          ...   \n",
       "2023-08-31            1           1           1            0            0   \n",
       "2023-09-30            1           1           0            0            0   \n",
       "2023-10-31            1           1           0            0            0   \n",
       "2023-11-30            1           1           1            0            0   \n",
       "2023-12-31            1           1           1            0            0   \n",
       "\n",
       "            ...  跳开0季度三月  跳开1季度一月  跳开1季度二月  跳开1季度三月  展期率01变化季度一月  展期率01变化季度二月  \\\n",
       "t           ...                                                                 \n",
       "2010-02-28  ...        0        0        0        0            0            0   \n",
       "2010-03-31  ...        0        0        0        0            0            0   \n",
       "2010-04-30  ...        0        0        0        0            0            0   \n",
       "2010-05-31  ...        0        0        0        0            0            0   \n",
       "2010-06-30  ...        0        0        0        0            0            0   \n",
       "...         ...      ...      ...      ...      ...          ...          ...   \n",
       "2023-08-31  ...       -1       -1        0       -1            0            0   \n",
       "2023-09-30  ...       -1       -1        0       -1            0            0   \n",
       "2023-10-31  ...       -1       -1        0       -1            0            0   \n",
       "2023-11-30  ...       -1       -1        0       -1            0            0   \n",
       "2023-12-31  ...       -1       -1        0       -1            0            0   \n",
       "\n",
       "            展期率01变化季度三月  基差率01变化季度一月  基差率01变化季度二月  基差率01变化季度三月  \n",
       "t                                                               \n",
       "2010-02-28            0            0            0            0  \n",
       "2010-03-31            0            0            0            0  \n",
       "2010-04-30            0            0            0            0  \n",
       "2010-05-31            0            0            0            0  \n",
       "2010-06-30            0            0            0            0  \n",
       "...                 ...          ...          ...          ...  \n",
       "2023-08-31            0            1            0            0  \n",
       "2023-09-30            0            1            0            0  \n",
       "2023-10-31            0            1            0            0  \n",
       "2023-11-30            0            1            0            0  \n",
       "2023-12-31            0            1            0            0  \n",
       "\n",
       "[167 rows x 264 columns]"
      ]
     },
     "execution_count": 397,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xxx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fd4f8ae3",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "9d3780bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>收益率0均值滚动21</th>\n",
       "      <th>收益率0均值滚动63</th>\n",
       "      <th>收益率0均值滚动126</th>\n",
       "      <th>收益率0均值滚动252</th>\n",
       "      <th>收益率0均值滚动378</th>\n",
       "      <th>收益率0均值滚动504</th>\n",
       "      <th>收益率0均值滚动630</th>\n",
       "      <th>收益率0均值滚动756</th>\n",
       "      <th>收益率0波动滚动21</th>\n",
       "      <th>收益率0波动滚动63</th>\n",
       "      <th>...</th>\n",
       "      <th>收益率0季度三月</th>\n",
       "      <th>收益率1季度一月</th>\n",
       "      <th>收益率1季度二月</th>\n",
       "      <th>收益率1季度三月</th>\n",
       "      <th>跳开0季度一月</th>\n",
       "      <th>跳开0季度二月</th>\n",
       "      <th>跳开0季度三月</th>\n",
       "      <th>跳开1季度一月</th>\n",
       "      <th>跳开1季度二月</th>\n",
       "      <th>跳开1季度三月</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-02-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-03</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-04</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-05</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>-0.005102</td>\n",
       "      <td>-0.006729</td>\n",
       "      <td>-0.008014</td>\n",
       "      <td>-6.741557e-03</td>\n",
       "      <td>-0.004632</td>\n",
       "      <td>-0.004329</td>\n",
       "      <td>-0.006289</td>\n",
       "      <td>-0.007694</td>\n",
       "      <td>-0.006936</td>\n",
       "      <td>-0.008140</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.008167</td>\n",
       "      <td>-0.007048</td>\n",
       "      <td>-0.007805</td>\n",
       "      <td>-0.007342</td>\n",
       "      <td>-0.004035</td>\n",
       "      <td>-0.005464</td>\n",
       "      <td>-0.006569</td>\n",
       "      <td>-0.007347</td>\n",
       "      <td>-0.005635</td>\n",
       "      <td>-0.006181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>0.002469</td>\n",
       "      <td>0.003468</td>\n",
       "      <td>0.002325</td>\n",
       "      <td>4.909531e-03</td>\n",
       "      <td>0.001817</td>\n",
       "      <td>0.002064</td>\n",
       "      <td>0.000386</td>\n",
       "      <td>0.002032</td>\n",
       "      <td>-0.002002</td>\n",
       "      <td>-0.000715</td>\n",
       "      <td>...</td>\n",
       "      <td>0.001392</td>\n",
       "      <td>0.002945</td>\n",
       "      <td>0.003953</td>\n",
       "      <td>0.000461</td>\n",
       "      <td>0.000161</td>\n",
       "      <td>0.000043</td>\n",
       "      <td>-0.000120</td>\n",
       "      <td>-0.000194</td>\n",
       "      <td>-0.001196</td>\n",
       "      <td>-0.000524</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>-0.006315</td>\n",
       "      <td>-0.001774</td>\n",
       "      <td>0.001200</td>\n",
       "      <td>-3.341875e-07</td>\n",
       "      <td>0.000718</td>\n",
       "      <td>0.003827</td>\n",
       "      <td>0.002425</td>\n",
       "      <td>0.002202</td>\n",
       "      <td>0.003924</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000487</td>\n",
       "      <td>0.000344</td>\n",
       "      <td>-0.003942</td>\n",
       "      <td>0.003215</td>\n",
       "      <td>-0.000569</td>\n",
       "      <td>0.002262</td>\n",
       "      <td>0.002829</td>\n",
       "      <td>0.000070</td>\n",
       "      <td>0.003517</td>\n",
       "      <td>0.002537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-28</th>\n",
       "      <td>-0.001308</td>\n",
       "      <td>-0.003164</td>\n",
       "      <td>-0.003287</td>\n",
       "      <td>-2.079398e-03</td>\n",
       "      <td>-0.001104</td>\n",
       "      <td>-0.003242</td>\n",
       "      <td>-0.002391</td>\n",
       "      <td>-0.004968</td>\n",
       "      <td>-0.006413</td>\n",
       "      <td>-0.006213</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.004103</td>\n",
       "      <td>-0.001019</td>\n",
       "      <td>-0.002433</td>\n",
       "      <td>-0.002908</td>\n",
       "      <td>-0.002793</td>\n",
       "      <td>-0.005691</td>\n",
       "      <td>-0.002524</td>\n",
       "      <td>-0.003880</td>\n",
       "      <td>-0.003129</td>\n",
       "      <td>-0.003749</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-29</th>\n",
       "      <td>0.004139</td>\n",
       "      <td>0.006814</td>\n",
       "      <td>-0.000120</td>\n",
       "      <td>3.816494e-03</td>\n",
       "      <td>-0.000341</td>\n",
       "      <td>-0.008724</td>\n",
       "      <td>-0.010035</td>\n",
       "      <td>-0.007916</td>\n",
       "      <td>-0.007941</td>\n",
       "      <td>-0.004788</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000733</td>\n",
       "      <td>0.004760</td>\n",
       "      <td>0.008238</td>\n",
       "      <td>-0.004458</td>\n",
       "      <td>0.004382</td>\n",
       "      <td>-0.002268</td>\n",
       "      <td>-0.001502</td>\n",
       "      <td>-0.000047</td>\n",
       "      <td>-0.003074</td>\n",
       "      <td>-0.002360</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3381 rows × 216 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            收益率0均值滚动21  收益率0均值滚动63  收益率0均值滚动126   收益率0均值滚动252  收益率0均值滚动378  \\\n",
       "t                                                                            \n",
       "2010-02-01         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-02         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-03         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-04         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-05         NaN         NaN          NaN           NaN          NaN   \n",
       "...                ...         ...          ...           ...          ...   \n",
       "2023-12-25   -0.005102   -0.006729    -0.008014 -6.741557e-03    -0.004632   \n",
       "2023-12-26    0.002469    0.003468     0.002325  4.909531e-03     0.001817   \n",
       "2023-12-27   -0.006315   -0.001774     0.001200 -3.341875e-07     0.000718   \n",
       "2023-12-28   -0.001308   -0.003164    -0.003287 -2.079398e-03    -0.001104   \n",
       "2023-12-29    0.004139    0.006814    -0.000120  3.816494e-03    -0.000341   \n",
       "\n",
       "            收益率0均值滚动504  收益率0均值滚动630  收益率0均值滚动756  收益率0波动滚动21  收益率0波动滚动63  \\\n",
       "t                                                                           \n",
       "2010-02-01          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-02          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-03          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-04          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-05          NaN          NaN          NaN         NaN         NaN   \n",
       "...                 ...          ...          ...         ...         ...   \n",
       "2023-12-25    -0.004329    -0.006289    -0.007694   -0.006936   -0.008140   \n",
       "2023-12-26     0.002064     0.000386     0.002032   -0.002002   -0.000715   \n",
       "2023-12-27     0.003827     0.002425     0.002202    0.003924    0.002681   \n",
       "2023-12-28    -0.003242    -0.002391    -0.004968   -0.006413   -0.006213   \n",
       "2023-12-29    -0.008724    -0.010035    -0.007916   -0.007941   -0.004788   \n",
       "\n",
       "            ...  收益率0季度三月  收益率1季度一月  收益率1季度二月  收益率1季度三月   跳开0季度一月   跳开0季度二月  \\\n",
       "t           ...                                                               \n",
       "2010-02-01  ...       NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-02  ...       NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-03  ...       NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-04  ...       NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-05  ...       NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "...         ...       ...       ...       ...       ...       ...       ...   \n",
       "2023-12-25  ... -0.008167 -0.007048 -0.007805 -0.007342 -0.004035 -0.005464   \n",
       "2023-12-26  ...  0.001392  0.002945  0.003953  0.000461  0.000161  0.000043   \n",
       "2023-12-27  ...  0.000487  0.000344 -0.003942  0.003215 -0.000569  0.002262   \n",
       "2023-12-28  ... -0.004103 -0.001019 -0.002433 -0.002908 -0.002793 -0.005691   \n",
       "2023-12-29  ... -0.000733  0.004760  0.008238 -0.004458  0.004382 -0.002268   \n",
       "\n",
       "             跳开0季度三月   跳开1季度一月   跳开1季度二月   跳开1季度三月  \n",
       "t                                                   \n",
       "2010-02-01       NaN       NaN       NaN       NaN  \n",
       "2010-02-02       NaN       NaN       NaN       NaN  \n",
       "2010-02-03       NaN       NaN       NaN       NaN  \n",
       "2010-02-04       NaN       NaN       NaN       NaN  \n",
       "2010-02-05       NaN       NaN       NaN       NaN  \n",
       "...              ...       ...       ...       ...  \n",
       "2023-12-25 -0.006569 -0.007347 -0.005635 -0.006181  \n",
       "2023-12-26 -0.000120 -0.000194 -0.001196 -0.000524  \n",
       "2023-12-27  0.002829  0.000070  0.003517  0.002537  \n",
       "2023-12-28 -0.002524 -0.003880 -0.003129 -0.003749  \n",
       "2023-12-29 -0.001502 -0.000047 -0.003074 -0.002360  \n",
       "\n",
       "[3381 rows x 216 columns]"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddd2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9dd92c03",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "f5c406fb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "收益率1双均线7月      1.299915\n",
       "收益率1双均线8月      1.343121\n",
       "收益率0双均线9月      1.350494\n",
       "收益率0双均线6月      1.356067\n",
       "收益率0偏度滚动126    1.356144\n",
       "                 ...   \n",
       "跳开0波动滚动756     2.593500\n",
       "跳开0波动滚动252     2.694277\n",
       "收益率0均值滚动378    2.717096\n",
       "收益率1波动滚动756    2.771117\n",
       "跳开0波动滚动630     2.866530\n",
       "Length: 216, dtype: float64"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xx = ((250**0.5)*ddd2.rolling(126).mean()/ddd2.rolling(126).std()).rank(1,pct=True)\n",
    "(xx.mean()/xx.std()).sort_values()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "d5e4b393",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x17173e5e700>"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd2['收益率0双均线6月'].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0fec2538",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ccee88d4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "33db075d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.39346788113442027"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cal_sp(ddd2['跳开1偏度滚动126'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5a1214dd",
   "metadata": {},
   "outputs": [],
   "source": [
    "ddd2['跳开1季度一月'].mean()/ddd2['跳开1季度一月'].std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ebcaa533",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0d3496e6",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f0c7e870",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 558,
   "id": "d58397f2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d43d778580>"
      ]
     },
     "execution_count": 558,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx = (收益率1.rolling(21*5).mean() - 收益率1.rolling(21*12).mean()).resample(tp).last()\n",
    "get_因子日度收益(xx,'因子',收益率0,1).cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "230a51a1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eb0f6975",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 583,
   "id": "3b4f1f0a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx1 = ddd1.mean(1)\n",
    "x1 = ddd2[((250**0.5)*ddd2.mean()/ddd2.std()).sort_values()[-10:].index].mean(1)\n",
    "x2 = ddd2[((250**0.5)*ddd2.mean()/ddd2.std()).sort_values()[:10].index].mean(1)\n",
    "xx2 = pd.concat([x1,x2*-1],axis=1).mean(1)\n",
    "pd.concat([xx1,xx2],axis=1).resample('W').sum().corr('spearman')\n",
    "pd.concat([xx1,xx2],axis=1).mean(1).cumsum().plot()\n",
    "xxx = pd.concat([xx1,xx2],axis=1)\n",
    "xxx['mean'] = xxx.mean(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 584,
   "id": "4d218400",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       1.264510\n",
       "1       1.090959\n",
       "mean    1.407612\n",
       "dtype: float64"
      ]
     },
     "execution_count": 584,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(250**0.5)*xxx.mean()/xxx.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "43539070",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cb1010df",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 573,
   "id": "2ea4ab4f",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "收益率1双均线8月      -0.765759\n",
       "收益率1双均线7月      -0.751278\n",
       "收益率1双均线5月      -0.741586\n",
       "收益率0双均线7月      -0.690014\n",
       "收益率0双均线6月      -0.686352\n",
       "                  ...   \n",
       "收益率1双均线11月      0.541112\n",
       "收益率0RSI滚动378    0.593144\n",
       "收益率1均值滚动378     0.619189\n",
       "收益率0均值滚动378     0.622908\n",
       "收益率0双均线11月      0.638068\n",
       "Length: 102, dtype: float64"
      ]
     },
     "execution_count": 573,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "((250**0.5)*ddd2.mean()/ddd2.std()).sort_values()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 576,
   "id": "99496133",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d4351b5490>"
      ]
     },
     "execution_count": 576,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd2['收益率1双均线6月'].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ac55c3ac",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f25d39a6",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 571,
   "id": "d9bd6da4",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "ddd1 = pd.concat([get_因子日度收益(globals()[因子名],因子名,收益率0,1) for 因子名 in 因子库1],axis=1)\n",
    "ddd2 = pd.concat([get_因子日度收益(globals()[因子名],因子名,收益率0,1) for 因子名 in 因子库2],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f7c95d03",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "51c94949",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "09287633",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 459,
   "id": "9038b353",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d4357153a0>"
      ]
     },
     "execution_count": 459,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd1.mean(1).cumsum().plot()\n",
    "ddd2.mean(1).cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 536,
   "id": "bc8c9872",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "收益率0偏度滚动126    -0.626298\n",
       "收益率0偏度滚动378    -0.624067\n",
       "收益率1偏度滚动504    -0.576606\n",
       "收益率1偏度滚动378    -0.484545\n",
       "收益率0峰度滚动126    -0.481658\n",
       "收益率0偏度滚动252    -0.455554\n",
       "收益率0峰度滚动63     -0.378127\n",
       "收益率0偏度滚动756    -0.376825\n",
       "收益率1偏度滚动756    -0.369093\n",
       "收益率1偏度滚动21     -0.328576\n",
       "收益率1峰度滚动378    -0.309476\n",
       "收益率1偏度滚动630    -0.308843\n",
       "收益率1峰度滚动126    -0.307979\n",
       "收益率0偏度滚动504    -0.305017\n",
       "收益率1峰度滚动630    -0.301504\n",
       "收益率1偏度滚动252    -0.290545\n",
       "收益率1偏度滚动126    -0.206482\n",
       "收益率1偏度滚动63     -0.197776\n",
       "收益率1峰度滚动756    -0.196788\n",
       "收益率0偏度滚动21     -0.193177\n",
       "收益率0峰度滚动252    -0.157169\n",
       "收益率0峰度滚动378    -0.149172\n",
       "收益率0峰度滚动504    -0.108268\n",
       "收益率1峰度滚动504    -0.094797\n",
       "收益率1峰度滚动252    -0.092082\n",
       "收益率1峰度滚动63     -0.075468\n",
       "收益率0偏度滚动630    -0.069715\n",
       "收益率0峰度滚动21     -0.064903\n",
       "收益率0偏度滚动63     -0.054344\n",
       "收益率0RSI滚动126   -0.039180\n",
       "收益率1峰度滚动21     -0.033503\n",
       "收益率0均值滚动126    -0.019494\n",
       "收益率0峰度滚动756     0.003757\n",
       "收益率0波动滚动252     0.023813\n",
       "收益率1RSI滚动126    0.028847\n",
       "收益率1波动滚动252     0.055472\n",
       "收益率1波动滚动378     0.065691\n",
       "收益率0波动滚动378     0.070911\n",
       "收益率1RSI滚动630    0.082494\n",
       "收益率0均值滚动63      0.085608\n",
       "收益率0峰度滚动630     0.091265\n",
       "收益率1均值滚动63      0.095121\n",
       "收益率1RSI滚动63     0.103523\n",
       "收益率1RSI滚动756    0.106395\n",
       "收益率1均值滚动126     0.122120\n",
       "收益率0RSI滚动63     0.180652\n",
       "收益率0均值滚动21      0.191123\n",
       "收益率0RSI滚动630    0.217838\n",
       "收益率0波动滚动126     0.222474\n",
       "收益率1RSI滚动252    0.225670\n",
       "dtype: float64"
      ]
     },
     "execution_count": 536,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "((250**0.5)*ddd2.mean()/ddd2.std()).sort_values()[:50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 538,
   "id": "0de935d7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d437e165b0>"
      ]
     },
     "execution_count": 538,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd2['收益率1峰度滚动63'].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b993c879",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "064e39fc",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "490abdf2",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 523,
   "id": "c5491f23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>收益率1RSI滚动378</th>\n",
       "      <th>收益率0RSI滚动378</th>\n",
       "      <th>收益率1均值滚动378</th>\n",
       "      <th>收益率0均值滚动378</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>收益率1RSI滚动378</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.883144</td>\n",
       "      <td>0.863843</td>\n",
       "      <td>0.802964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>收益率0RSI滚动378</th>\n",
       "      <td>0.883144</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.831248</td>\n",
       "      <td>0.867162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>收益率1均值滚动378</th>\n",
       "      <td>0.863843</td>\n",
       "      <td>0.831248</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.888192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>收益率0均值滚动378</th>\n",
       "      <td>0.802964</td>\n",
       "      <td>0.867162</td>\n",
       "      <td>0.888192</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              收益率1RSI滚动378  收益率0RSI滚动378  收益率1均值滚动378  收益率0均值滚动378\n",
       "收益率1RSI滚动378      1.000000      0.883144     0.863843     0.802964\n",
       "收益率0RSI滚动378      0.883144      1.000000     0.831248     0.867162\n",
       "收益率1均值滚动378       0.863843      0.831248     1.000000     0.888192\n",
       "收益率0均值滚动378       0.802964      0.867162     0.888192     1.000000"
      ]
     },
     "execution_count": 523,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([ddd2['收益率1RSI滚动378'],\n",
    "           ddd2['收益率0RSI滚动378'],\n",
    "           ddd2['收益率1均值滚动378'],\n",
    "           ddd2['收益率0均值滚动378']],axis=1).resample('W').sum().corr('spearman')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 533,
   "id": "24684aff",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>收益率0均值滚动21</th>\n",
       "      <th>收益率0均值滚动63</th>\n",
       "      <th>收益率0均值滚动126</th>\n",
       "      <th>收益率0均值滚动252</th>\n",
       "      <th>收益率0均值滚动378</th>\n",
       "      <th>收益率0均值滚动504</th>\n",
       "      <th>收益率0均值滚动630</th>\n",
       "      <th>收益率0均值滚动756</th>\n",
       "      <th>收益率0波动滚动21</th>\n",
       "      <th>收益率0波动滚动63</th>\n",
       "      <th>...</th>\n",
       "      <th>收益率1峰度滚动630</th>\n",
       "      <th>收益率1峰度滚动756</th>\n",
       "      <th>收益率1RSI滚动21</th>\n",
       "      <th>收益率1RSI滚动63</th>\n",
       "      <th>收益率1RSI滚动126</th>\n",
       "      <th>收益率1RSI滚动252</th>\n",
       "      <th>收益率1RSI滚动378</th>\n",
       "      <th>收益率1RSI滚动504</th>\n",
       "      <th>收益率1RSI滚动630</th>\n",
       "      <th>收益率1RSI滚动756</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-02-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-03</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-04</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-05</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-21</th>\n",
       "      <td>0.005930</td>\n",
       "      <td>0.005695</td>\n",
       "      <td>0.005824</td>\n",
       "      <td>5.701623e-03</td>\n",
       "      <td>0.002772</td>\n",
       "      <td>0.001533</td>\n",
       "      <td>-0.003241</td>\n",
       "      <td>0.002098</td>\n",
       "      <td>0.005018</td>\n",
       "      <td>0.005129</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.003660</td>\n",
       "      <td>-0.003384</td>\n",
       "      <td>0.005285</td>\n",
       "      <td>0.006082</td>\n",
       "      <td>0.005472</td>\n",
       "      <td>0.003797</td>\n",
       "      <td>0.002973</td>\n",
       "      <td>0.000573</td>\n",
       "      <td>-0.001256</td>\n",
       "      <td>0.001450</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-22</th>\n",
       "      <td>0.002630</td>\n",
       "      <td>0.004473</td>\n",
       "      <td>0.000175</td>\n",
       "      <td>4.352339e-04</td>\n",
       "      <td>0.001074</td>\n",
       "      <td>-0.001382</td>\n",
       "      <td>-0.000827</td>\n",
       "      <td>0.000068</td>\n",
       "      <td>0.000838</td>\n",
       "      <td>0.000516</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000314</td>\n",
       "      <td>-0.001031</td>\n",
       "      <td>0.000750</td>\n",
       "      <td>0.002648</td>\n",
       "      <td>0.001387</td>\n",
       "      <td>0.001463</td>\n",
       "      <td>0.001230</td>\n",
       "      <td>-0.002012</td>\n",
       "      <td>-0.003159</td>\n",
       "      <td>-0.003711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>-0.005102</td>\n",
       "      <td>-0.006729</td>\n",
       "      <td>-0.008014</td>\n",
       "      <td>-6.741557e-03</td>\n",
       "      <td>-0.004632</td>\n",
       "      <td>-0.004329</td>\n",
       "      <td>-0.006289</td>\n",
       "      <td>-0.007694</td>\n",
       "      <td>-0.006936</td>\n",
       "      <td>-0.008140</td>\n",
       "      <td>...</td>\n",
       "      <td>0.001539</td>\n",
       "      <td>0.001768</td>\n",
       "      <td>-0.004062</td>\n",
       "      <td>-0.007778</td>\n",
       "      <td>-0.006551</td>\n",
       "      <td>-0.005004</td>\n",
       "      <td>-0.004544</td>\n",
       "      <td>-0.002805</td>\n",
       "      <td>-0.004966</td>\n",
       "      <td>-0.005506</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>0.002469</td>\n",
       "      <td>0.003468</td>\n",
       "      <td>0.002325</td>\n",
       "      <td>4.909531e-03</td>\n",
       "      <td>0.001817</td>\n",
       "      <td>0.002064</td>\n",
       "      <td>0.000386</td>\n",
       "      <td>0.002032</td>\n",
       "      <td>-0.002002</td>\n",
       "      <td>-0.000715</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.003561</td>\n",
       "      <td>-0.002413</td>\n",
       "      <td>0.002399</td>\n",
       "      <td>0.003087</td>\n",
       "      <td>0.003146</td>\n",
       "      <td>0.004346</td>\n",
       "      <td>0.003332</td>\n",
       "      <td>0.002377</td>\n",
       "      <td>0.001027</td>\n",
       "      <td>0.000835</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>-0.006315</td>\n",
       "      <td>-0.001774</td>\n",
       "      <td>0.001200</td>\n",
       "      <td>-3.341875e-07</td>\n",
       "      <td>0.000718</td>\n",
       "      <td>0.003827</td>\n",
       "      <td>0.002425</td>\n",
       "      <td>0.002202</td>\n",
       "      <td>0.003924</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.002486</td>\n",
       "      <td>-0.000954</td>\n",
       "      <td>-0.003022</td>\n",
       "      <td>-0.003782</td>\n",
       "      <td>-0.001009</td>\n",
       "      <td>-0.001219</td>\n",
       "      <td>-0.000398</td>\n",
       "      <td>0.001685</td>\n",
       "      <td>0.003168</td>\n",
       "      <td>0.002802</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3379 rows × 80 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            收益率0均值滚动21  收益率0均值滚动63  收益率0均值滚动126   收益率0均值滚动252  收益率0均值滚动378  \\\n",
       "t                                                                            \n",
       "2010-02-01         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-02         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-03         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-04         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-05         NaN         NaN          NaN           NaN          NaN   \n",
       "...                ...         ...          ...           ...          ...   \n",
       "2023-12-21    0.005930    0.005695     0.005824  5.701623e-03     0.002772   \n",
       "2023-12-22    0.002630    0.004473     0.000175  4.352339e-04     0.001074   \n",
       "2023-12-25   -0.005102   -0.006729    -0.008014 -6.741557e-03    -0.004632   \n",
       "2023-12-26    0.002469    0.003468     0.002325  4.909531e-03     0.001817   \n",
       "2023-12-27   -0.006315   -0.001774     0.001200 -3.341875e-07     0.000718   \n",
       "\n",
       "            收益率0均值滚动504  收益率0均值滚动630  收益率0均值滚动756  收益率0波动滚动21  收益率0波动滚动63  \\\n",
       "t                                                                           \n",
       "2010-02-01          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-02          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-03          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-04          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-05          NaN          NaN          NaN         NaN         NaN   \n",
       "...                 ...          ...          ...         ...         ...   \n",
       "2023-12-21     0.001533    -0.003241     0.002098    0.005018    0.005129   \n",
       "2023-12-22    -0.001382    -0.000827     0.000068    0.000838    0.000516   \n",
       "2023-12-25    -0.004329    -0.006289    -0.007694   -0.006936   -0.008140   \n",
       "2023-12-26     0.002064     0.000386     0.002032   -0.002002   -0.000715   \n",
       "2023-12-27     0.003827     0.002425     0.002202    0.003924    0.002681   \n",
       "\n",
       "            ...  收益率1峰度滚动630  收益率1峰度滚动756  收益率1RSI滚动21  收益率1RSI滚动63  \\\n",
       "t           ...                                                       \n",
       "2010-02-01  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-02  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-03  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-04  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-05  ...          NaN          NaN          NaN          NaN   \n",
       "...         ...          ...          ...          ...          ...   \n",
       "2023-12-21  ...    -0.003660    -0.003384     0.005285     0.006082   \n",
       "2023-12-22  ...    -0.000314    -0.001031     0.000750     0.002648   \n",
       "2023-12-25  ...     0.001539     0.001768    -0.004062    -0.007778   \n",
       "2023-12-26  ...    -0.003561    -0.002413     0.002399     0.003087   \n",
       "2023-12-27  ...    -0.002486    -0.000954    -0.003022    -0.003782   \n",
       "\n",
       "            收益率1RSI滚动126  收益率1RSI滚动252  收益率1RSI滚动378  收益率1RSI滚动504  \\\n",
       "t                                                                    \n",
       "2010-02-01           NaN           NaN           NaN           NaN   \n",
       "2010-02-02           NaN           NaN           NaN           NaN   \n",
       "2010-02-03           NaN           NaN           NaN           NaN   \n",
       "2010-02-04           NaN           NaN           NaN           NaN   \n",
       "2010-02-05           NaN           NaN           NaN           NaN   \n",
       "...                  ...           ...           ...           ...   \n",
       "2023-12-21      0.005472      0.003797      0.002973      0.000573   \n",
       "2023-12-22      0.001387      0.001463      0.001230     -0.002012   \n",
       "2023-12-25     -0.006551     -0.005004     -0.004544     -0.002805   \n",
       "2023-12-26      0.003146      0.004346      0.003332      0.002377   \n",
       "2023-12-27     -0.001009     -0.001219     -0.000398      0.001685   \n",
       "\n",
       "            收益率1RSI滚动630  收益率1RSI滚动756  \n",
       "t                                       \n",
       "2010-02-01           NaN           NaN  \n",
       "2010-02-02           NaN           NaN  \n",
       "2010-02-03           NaN           NaN  \n",
       "2010-02-04           NaN           NaN  \n",
       "2010-02-05           NaN           NaN  \n",
       "...                  ...           ...  \n",
       "2023-12-21     -0.001256      0.001450  \n",
       "2023-12-22     -0.003159     -0.003711  \n",
       "2023-12-25     -0.004966     -0.005506  \n",
       "2023-12-26      0.001027      0.000835  \n",
       "2023-12-27      0.003168      0.002802  \n",
       "\n",
       "[3379 rows x 80 columns]"
      ]
     },
     "execution_count": 533,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddd2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "407673dc",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 534,
   "id": "ef59a1e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d437da3700>"
      ]
     },
     "execution_count": 534,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd2['收益率0均值滚动252'].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5489c349",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 516,
   "id": "0937a91b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "收益率0偏度滚动126   -0.626298\n",
       "收益率0偏度滚动378   -0.624067\n",
       "收益率1偏度滚动504   -0.576606\n",
       "收益率1偏度滚动378   -0.484545\n",
       "收益率0峰度滚动126   -0.481658\n",
       "收益率0偏度滚动252   -0.455554\n",
       "收益率0峰度滚动63    -0.378127\n",
       "收益率0偏度滚动756   -0.376825\n",
       "收益率1偏度滚动756   -0.369093\n",
       "收益率1偏度滚动21    -0.328576\n",
       "dtype: float64"
      ]
     },
     "execution_count": 516,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "((250**0.5)*ddd2.mean()/ddd2.std()).sort_values()[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ab0f7f31",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 510,
   "id": "28b3badd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.065868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.065868</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1\n",
       "0  1.000000 -0.065868\n",
       "1 -0.065868  1.000000"
      ]
     },
     "execution_count": 510,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x1 = ddd2[((250**0.5)*ddd2.mean()/ddd2.std()).sort_values()[-10:].index].mean(1)\n",
    "x2 = ddd2[((250**0.5)*ddd2.mean()/ddd2.std()).sort_values()[:10].index].mean(1)\n",
    "\n",
    "pd.concat([x1,x2],axis=1).resample('W').sum().corr('spearman')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 512,
   "id": "5c6408e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d4379fd2b0>"
      ]
     },
     "execution_count": 512,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pd.concat([x1,x2*-1],axis=1).mean(1).cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 514,
   "id": "2be690e2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8407721403645857"
      ]
     },
     "execution_count": 514,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x3 = pd.concat([x1,x2*-1],axis=1).mean(1)\n",
    "(250**0.5)*x3.mean()/x3.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "161a5803",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2edd1572",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0920bda9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 486,
   "id": "58591d79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d436f8e130>"
      ]
     },
     "execution_count": 486,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "(250**0.5)*ddd.mean(1).mean()/ddd.mean(1).std()\n",
    "ddd.mean(1).cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 493,
   "id": "71a4f3aa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d437126880>"
      ]
     },
     "execution_count": 493,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd2['收益率0均值滚动378'].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 494,
   "id": "e372197a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>收益率0均值滚动21</th>\n",
       "      <th>收益率0均值滚动63</th>\n",
       "      <th>收益率0均值滚动126</th>\n",
       "      <th>收益率0均值滚动252</th>\n",
       "      <th>收益率0均值滚动378</th>\n",
       "      <th>收益率0均值滚动504</th>\n",
       "      <th>收益率0均值滚动630</th>\n",
       "      <th>收益率0均值滚动756</th>\n",
       "      <th>收益率0波动滚动21</th>\n",
       "      <th>收益率0波动滚动63</th>\n",
       "      <th>...</th>\n",
       "      <th>收益率1峰度滚动630</th>\n",
       "      <th>收益率1峰度滚动756</th>\n",
       "      <th>收益率1RSI滚动21</th>\n",
       "      <th>收益率1RSI滚动63</th>\n",
       "      <th>收益率1RSI滚动126</th>\n",
       "      <th>收益率1RSI滚动252</th>\n",
       "      <th>收益率1RSI滚动378</th>\n",
       "      <th>收益率1RSI滚动504</th>\n",
       "      <th>收益率1RSI滚动630</th>\n",
       "      <th>收益率1RSI滚动756</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-02-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-03</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-04</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-05</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-21</th>\n",
       "      <td>0.005930</td>\n",
       "      <td>0.005695</td>\n",
       "      <td>0.005824</td>\n",
       "      <td>5.701623e-03</td>\n",
       "      <td>0.002772</td>\n",
       "      <td>0.001533</td>\n",
       "      <td>-0.003241</td>\n",
       "      <td>0.002098</td>\n",
       "      <td>0.005018</td>\n",
       "      <td>0.005129</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.003660</td>\n",
       "      <td>-0.003384</td>\n",
       "      <td>0.005285</td>\n",
       "      <td>0.006082</td>\n",
       "      <td>0.005472</td>\n",
       "      <td>0.003797</td>\n",
       "      <td>0.002973</td>\n",
       "      <td>0.000573</td>\n",
       "      <td>-0.001256</td>\n",
       "      <td>0.001450</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-22</th>\n",
       "      <td>0.002630</td>\n",
       "      <td>0.004473</td>\n",
       "      <td>0.000175</td>\n",
       "      <td>4.352339e-04</td>\n",
       "      <td>0.001074</td>\n",
       "      <td>-0.001382</td>\n",
       "      <td>-0.000827</td>\n",
       "      <td>0.000068</td>\n",
       "      <td>0.000838</td>\n",
       "      <td>0.000516</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000314</td>\n",
       "      <td>-0.001031</td>\n",
       "      <td>0.000750</td>\n",
       "      <td>0.002648</td>\n",
       "      <td>0.001387</td>\n",
       "      <td>0.001463</td>\n",
       "      <td>0.001230</td>\n",
       "      <td>-0.002012</td>\n",
       "      <td>-0.003159</td>\n",
       "      <td>-0.003711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>-0.005102</td>\n",
       "      <td>-0.006729</td>\n",
       "      <td>-0.008014</td>\n",
       "      <td>-6.741557e-03</td>\n",
       "      <td>-0.004632</td>\n",
       "      <td>-0.004329</td>\n",
       "      <td>-0.006289</td>\n",
       "      <td>-0.007694</td>\n",
       "      <td>-0.006936</td>\n",
       "      <td>-0.008140</td>\n",
       "      <td>...</td>\n",
       "      <td>0.001539</td>\n",
       "      <td>0.001768</td>\n",
       "      <td>-0.004062</td>\n",
       "      <td>-0.007778</td>\n",
       "      <td>-0.006551</td>\n",
       "      <td>-0.005004</td>\n",
       "      <td>-0.004544</td>\n",
       "      <td>-0.002805</td>\n",
       "      <td>-0.004966</td>\n",
       "      <td>-0.005506</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>0.002469</td>\n",
       "      <td>0.003468</td>\n",
       "      <td>0.002325</td>\n",
       "      <td>4.909531e-03</td>\n",
       "      <td>0.001817</td>\n",
       "      <td>0.002064</td>\n",
       "      <td>0.000386</td>\n",
       "      <td>0.002032</td>\n",
       "      <td>-0.002002</td>\n",
       "      <td>-0.000715</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.003561</td>\n",
       "      <td>-0.002413</td>\n",
       "      <td>0.002399</td>\n",
       "      <td>0.003087</td>\n",
       "      <td>0.003146</td>\n",
       "      <td>0.004346</td>\n",
       "      <td>0.003332</td>\n",
       "      <td>0.002377</td>\n",
       "      <td>0.001027</td>\n",
       "      <td>0.000835</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>-0.006315</td>\n",
       "      <td>-0.001774</td>\n",
       "      <td>0.001200</td>\n",
       "      <td>-3.341875e-07</td>\n",
       "      <td>0.000718</td>\n",
       "      <td>0.003827</td>\n",
       "      <td>0.002425</td>\n",
       "      <td>0.002202</td>\n",
       "      <td>0.003924</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.002486</td>\n",
       "      <td>-0.000954</td>\n",
       "      <td>-0.003022</td>\n",
       "      <td>-0.003782</td>\n",
       "      <td>-0.001009</td>\n",
       "      <td>-0.001219</td>\n",
       "      <td>-0.000398</td>\n",
       "      <td>0.001685</td>\n",
       "      <td>0.003168</td>\n",
       "      <td>0.002802</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3379 rows × 80 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            收益率0均值滚动21  收益率0均值滚动63  收益率0均值滚动126   收益率0均值滚动252  收益率0均值滚动378  \\\n",
       "t                                                                            \n",
       "2010-02-01         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-02         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-03         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-04         NaN         NaN          NaN           NaN          NaN   \n",
       "2010-02-05         NaN         NaN          NaN           NaN          NaN   \n",
       "...                ...         ...          ...           ...          ...   \n",
       "2023-12-21    0.005930    0.005695     0.005824  5.701623e-03     0.002772   \n",
       "2023-12-22    0.002630    0.004473     0.000175  4.352339e-04     0.001074   \n",
       "2023-12-25   -0.005102   -0.006729    -0.008014 -6.741557e-03    -0.004632   \n",
       "2023-12-26    0.002469    0.003468     0.002325  4.909531e-03     0.001817   \n",
       "2023-12-27   -0.006315   -0.001774     0.001200 -3.341875e-07     0.000718   \n",
       "\n",
       "            收益率0均值滚动504  收益率0均值滚动630  收益率0均值滚动756  收益率0波动滚动21  收益率0波动滚动63  \\\n",
       "t                                                                           \n",
       "2010-02-01          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-02          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-03          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-04          NaN          NaN          NaN         NaN         NaN   \n",
       "2010-02-05          NaN          NaN          NaN         NaN         NaN   \n",
       "...                 ...          ...          ...         ...         ...   \n",
       "2023-12-21     0.001533    -0.003241     0.002098    0.005018    0.005129   \n",
       "2023-12-22    -0.001382    -0.000827     0.000068    0.000838    0.000516   \n",
       "2023-12-25    -0.004329    -0.006289    -0.007694   -0.006936   -0.008140   \n",
       "2023-12-26     0.002064     0.000386     0.002032   -0.002002   -0.000715   \n",
       "2023-12-27     0.003827     0.002425     0.002202    0.003924    0.002681   \n",
       "\n",
       "            ...  收益率1峰度滚动630  收益率1峰度滚动756  收益率1RSI滚动21  收益率1RSI滚动63  \\\n",
       "t           ...                                                       \n",
       "2010-02-01  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-02  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-03  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-04  ...          NaN          NaN          NaN          NaN   \n",
       "2010-02-05  ...          NaN          NaN          NaN          NaN   \n",
       "...         ...          ...          ...          ...          ...   \n",
       "2023-12-21  ...    -0.003660    -0.003384     0.005285     0.006082   \n",
       "2023-12-22  ...    -0.000314    -0.001031     0.000750     0.002648   \n",
       "2023-12-25  ...     0.001539     0.001768    -0.004062    -0.007778   \n",
       "2023-12-26  ...    -0.003561    -0.002413     0.002399     0.003087   \n",
       "2023-12-27  ...    -0.002486    -0.000954    -0.003022    -0.003782   \n",
       "\n",
       "            收益率1RSI滚动126  收益率1RSI滚动252  收益率1RSI滚动378  收益率1RSI滚动504  \\\n",
       "t                                                                    \n",
       "2010-02-01           NaN           NaN           NaN           NaN   \n",
       "2010-02-02           NaN           NaN           NaN           NaN   \n",
       "2010-02-03           NaN           NaN           NaN           NaN   \n",
       "2010-02-04           NaN           NaN           NaN           NaN   \n",
       "2010-02-05           NaN           NaN           NaN           NaN   \n",
       "...                  ...           ...           ...           ...   \n",
       "2023-12-21      0.005472      0.003797      0.002973      0.000573   \n",
       "2023-12-22      0.001387      0.001463      0.001230     -0.002012   \n",
       "2023-12-25     -0.006551     -0.005004     -0.004544     -0.002805   \n",
       "2023-12-26      0.003146      0.004346      0.003332      0.002377   \n",
       "2023-12-27     -0.001009     -0.001219     -0.000398      0.001685   \n",
       "\n",
       "            收益率1RSI滚动630  收益率1RSI滚动756  \n",
       "t                                       \n",
       "2010-02-01           NaN           NaN  \n",
       "2010-02-02           NaN           NaN  \n",
       "2010-02-03           NaN           NaN  \n",
       "2010-02-04           NaN           NaN  \n",
       "2010-02-05           NaN           NaN  \n",
       "...                  ...           ...  \n",
       "2023-12-21     -0.001256      0.001450  \n",
       "2023-12-22     -0.003159     -0.003711  \n",
       "2023-12-25     -0.004966     -0.005506  \n",
       "2023-12-26      0.001027      0.000835  \n",
       "2023-12-27      0.003168      0.002802  \n",
       "\n",
       "[3379 rows x 80 columns]"
      ]
     },
     "execution_count": 494,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddd2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d74f520a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "63713db9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2ed235f0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8ab05fa4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 540,
   "id": "4ee89c97",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.386867944814562\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d437b2fdf0>"
      ]
     },
     "execution_count": 540,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd = ddd2.copy()\n",
    "rrr = ddd.resample('M').sum().shift(-1)\n",
    "xxx = (ddd.rolling(378).sum().rank(1,pct=True) > 0.5).resample('M').last()\n",
    "# xxx = ((ddd*(ddd>0)).rolling(21*12).sum()/ddd.abs().rolling(21*12).sum()).rank(1,pct=True)\n",
    "# ddx = ddd.resample('W').sum()\n",
    "# xxx = ((ddx*(ddx>0)).rolling(4*24).sum()/ddx.abs().rolling(4*24).sum()).rank(1,pct=True)\n",
    "xxx0 = (xxx > 0).resample('M').last()\n",
    "xxx1 = (xxx > 0.6).resample('M').last()\n",
    "xxx2 = (xxx < 0.5).resample('M').last()\n",
    "ret0 = (xxx0*rrr).sum(1)/xxx0.sum(1)\n",
    "ret1 = (xxx1*rrr).sum(1)/xxx1.sum(1)\n",
    "ret2 = (xxx2*rrr).sum(1)/xxx2.sum(1)\n",
    "ret = ret1 - ret2\n",
    "print((12**0.5)*ret.mean()/ret.std())\n",
    "ret.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 531,
   "id": "beb6d14b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.17428592768043652,\n",
       " 0.2813170383077343,\n",
       " -0.15834714556961865,\n",
       " 0.3849568559745908)"
      ]
     },
     "execution_count": 531,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(12**0.5)*ret0.mean()/ret0.std(),\\\n",
    "(12**0.5)*ret1.mean()/ret1.std(),\\\n",
    "(12**0.5)*ret2.mean()/ret2.std(),\\\n",
    "(12**0.5)*ret.mean()/ret.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aba33337",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6869b060",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 490,
   "id": "1f03a5b7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d435f54220>"
      ]
     },
     "execution_count": 490,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ret1.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "98a707a1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 428,
   "id": "103a42ec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>AG</th>\n",
       "      <th>AL</th>\n",
       "      <th>AP</th>\n",
       "      <th>AU</th>\n",
       "      <th>B</th>\n",
       "      <th>BB</th>\n",
       "      <th>BC</th>\n",
       "      <th>BU</th>\n",
       "      <th>C</th>\n",
       "      <th>...</th>\n",
       "      <th>TS</th>\n",
       "      <th>UR</th>\n",
       "      <th>V</th>\n",
       "      <th>WH</th>\n",
       "      <th>WR</th>\n",
       "      <th>WS</th>\n",
       "      <th>WT</th>\n",
       "      <th>Y</th>\n",
       "      <th>ZC</th>\n",
       "      <th>ZN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-01-04</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-05</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-06</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-07</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-08</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-22</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3455 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             A  AG  AL  AP  AU   B  BB  BC  BU   C  ...  TS  UR   V  WH  WR  \\\n",
       "t                                                   ...                       \n",
       "2010-01-04 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2010-01-05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2010-01-06 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2010-01-07 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2010-01-08 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "...         ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ...  ..  ..  ..  ..  ..   \n",
       "2023-12-22 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2023-12-25 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2023-12-26 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2023-12-27 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "2023-12-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN   \n",
       "\n",
       "            WS  WT   Y  ZC  ZN  \n",
       "t                               \n",
       "2010-01-04 NaN NaN NaN NaN NaN  \n",
       "2010-01-05 NaN NaN NaN NaN NaN  \n",
       "2010-01-06 NaN NaN NaN NaN NaN  \n",
       "2010-01-07 NaN NaN NaN NaN NaN  \n",
       "2010-01-08 NaN NaN NaN NaN NaN  \n",
       "...         ..  ..  ..  ..  ..  \n",
       "2023-12-22 NaN NaN NaN NaN NaN  \n",
       "2023-12-25 NaN NaN NaN NaN NaN  \n",
       "2023-12-26 NaN NaN NaN NaN NaN  \n",
       "2023-12-27 NaN NaN NaN NaN NaN  \n",
       "2023-12-31 NaN NaN NaN NaN NaN  \n",
       "\n",
       "[3455 rows x 77 columns]"
      ]
     },
     "execution_count": 428,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "收益率0RSI滚动504"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 451,
   "id": "7e017685",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.2645775399956887\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d434d8d160>"
      ]
     },
     "execution_count": 451,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rr = get_因子日度收益(收益率1RSI滚动378,'因子',基差率01,1)\n",
    "print((250**0.5)*rr.mean()/rr.std())\n",
    "rr.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "78b4fe05",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 447,
   "id": "275da181",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.593144223317382\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d4348a5af0>"
      ]
     },
     "execution_count": 447,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "因子 = (收益率0*(收益率0>0)).rolling(378).sum()/收益率0.abs().rolling(378).sum()\n",
    "因子 = 因子.resample(tp).last().where(过滤因子)\n",
    "# 因子 = 收益率0.resample(tp).sum().rolling(30).mean().where(过滤因子)\n",
    "# 因子 = 展期率01.rolling(21*36).mean().resample(tp).last().where(过滤因子)\n",
    "# 因子 = 收益率0.rolling(21).mean().resample(tp).last().where(过滤因子)\n",
    "# 因子 = (收益率0.rolling(21*9).mean() - 收益率0.rolling(21*12).mean()).resample(tp).last().where(过滤因子)\n",
    "# 因子 = 收益率0.rolling(375).skew().resample(tp).last().where(过滤因子)\n",
    "rr = get_因子日度收益(因子,'因子',收益率0,1)\n",
    "print((250**0.5)*rr.mean()/rr.std())\n",
    "rr.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 398,
   "id": "186437d9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>因子</th>\n",
       "      <th>因子</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>因子</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.679939</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>因子</th>\n",
       "      <td>0.679939</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          因子        因子\n",
       "因子  1.000000  0.679939\n",
       "因子  0.679939  1.000000"
      ]
     },
     "execution_count": 398,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([rr,rr2],axis=1).corr('spearman')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "296be894",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 305,
   "id": "bf1e952d",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>展期率01季度一月</th>\n",
       "      <th>展期率01季度二月</th>\n",
       "      <th>展期率01季度三月</th>\n",
       "      <th>展期率01滚动21</th>\n",
       "      <th>展期率01滚动63</th>\n",
       "      <th>展期率01滚动126</th>\n",
       "      <th>展期率01滚动252</th>\n",
       "      <th>展期率01滚动378</th>\n",
       "      <th>展期率02季度一月</th>\n",
       "      <th>展期率02季度二月</th>\n",
       "      <th>...</th>\n",
       "      <th>基差RSI滚动252</th>\n",
       "      <th>基差RSI滚动378</th>\n",
       "      <th>基差均值季度一月</th>\n",
       "      <th>基差均值季度二月</th>\n",
       "      <th>基差均值季度三月</th>\n",
       "      <th>基差均值滚动21</th>\n",
       "      <th>基差均值滚动63</th>\n",
       "      <th>基差均值滚动126</th>\n",
       "      <th>基差均值滚动252</th>\n",
       "      <th>基差均值滚动378</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-02-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-03</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-04</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-05</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-21</th>\n",
       "      <td>0.541667</td>\n",
       "      <td>0.750000</td>\n",
       "      <td>0.895833</td>\n",
       "      <td>0.312500</td>\n",
       "      <td>0.520833</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.562500</td>\n",
       "      <td>0.854167</td>\n",
       "      <td>0.416667</td>\n",
       "      <td>0.812500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.979167</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>0.645833</td>\n",
       "      <td>0.604167</td>\n",
       "      <td>0.625000</td>\n",
       "      <td>0.375000</td>\n",
       "      <td>0.395833</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>0.791667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-22</th>\n",
       "      <td>0.416667</td>\n",
       "      <td>0.875000</td>\n",
       "      <td>0.833333</td>\n",
       "      <td>0.270833</td>\n",
       "      <td>0.645833</td>\n",
       "      <td>0.354167</td>\n",
       "      <td>0.458333</td>\n",
       "      <td>0.708333</td>\n",
       "      <td>0.437500</td>\n",
       "      <td>0.791667</td>\n",
       "      <td>...</td>\n",
       "      <td>0.979167</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.291667</td>\n",
       "      <td>0.687500</td>\n",
       "      <td>0.541667</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.395833</td>\n",
       "      <td>0.312500</td>\n",
       "      <td>0.895833</td>\n",
       "      <td>0.729167</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>0.458333</td>\n",
       "      <td>0.875000</td>\n",
       "      <td>0.729167</td>\n",
       "      <td>0.541667</td>\n",
       "      <td>0.625000</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.562500</td>\n",
       "      <td>0.750000</td>\n",
       "      <td>0.479167</td>\n",
       "      <td>0.833333</td>\n",
       "      <td>...</td>\n",
       "      <td>0.979167</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.354167</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.520833</td>\n",
       "      <td>0.687500</td>\n",
       "      <td>0.395833</td>\n",
       "      <td>0.375000</td>\n",
       "      <td>0.958333</td>\n",
       "      <td>0.708333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>0.458333</td>\n",
       "      <td>0.875000</td>\n",
       "      <td>0.750000</td>\n",
       "      <td>0.541667</td>\n",
       "      <td>0.604167</td>\n",
       "      <td>0.479167</td>\n",
       "      <td>0.375000</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.833333</td>\n",
       "      <td>...</td>\n",
       "      <td>0.979167</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>0.687500</td>\n",
       "      <td>0.437500</td>\n",
       "      <td>0.729167</td>\n",
       "      <td>0.416667</td>\n",
       "      <td>0.395833</td>\n",
       "      <td>0.895833</td>\n",
       "      <td>0.708333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.833333</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>0.270833</td>\n",
       "      <td>0.583333</td>\n",
       "      <td>0.541667</td>\n",
       "      <td>0.562500</td>\n",
       "      <td>0.791667</td>\n",
       "      <td>0.520833</td>\n",
       "      <td>0.729167</td>\n",
       "      <td>...</td>\n",
       "      <td>0.979167</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.375000</td>\n",
       "      <td>0.645833</td>\n",
       "      <td>0.479167</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.416667</td>\n",
       "      <td>0.458333</td>\n",
       "      <td>0.937500</td>\n",
       "      <td>0.750000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3379 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            展期率01季度一月  展期率01季度二月  展期率01季度三月  展期率01滚动21  展期率01滚动63  展期率01滚动126  \\\n",
       "t                                                                               \n",
       "2010-02-01        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-02        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-03        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-04        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-05        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "...               ...        ...        ...        ...        ...         ...   \n",
       "2023-12-21   0.541667   0.750000   0.895833   0.312500   0.520833    0.500000   \n",
       "2023-12-22   0.416667   0.875000   0.833333   0.270833   0.645833    0.354167   \n",
       "2023-12-25   0.458333   0.875000   0.729167   0.541667   0.625000    0.500000   \n",
       "2023-12-26   0.458333   0.875000   0.750000   0.541667   0.604167    0.479167   \n",
       "2023-12-27   0.500000   0.833333   0.916667   0.270833   0.583333    0.541667   \n",
       "\n",
       "            展期率01滚动252  展期率01滚动378  展期率02季度一月  展期率02季度二月  ...  基差RSI滚动252  \\\n",
       "t                                                         ...               \n",
       "2010-02-01         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-02         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-03         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-04         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-05         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "...                ...         ...        ...        ...  ...         ...   \n",
       "2023-12-21    0.562500    0.854167   0.416667   0.812500  ...    0.979167   \n",
       "2023-12-22    0.458333    0.708333   0.437500   0.791667  ...    0.979167   \n",
       "2023-12-25    0.562500    0.750000   0.479167   0.833333  ...    0.979167   \n",
       "2023-12-26    0.375000    0.666667   0.500000   0.833333  ...    0.979167   \n",
       "2023-12-27    0.562500    0.791667   0.520833   0.729167  ...    0.979167   \n",
       "\n",
       "            基差RSI滚动378  基差均值季度一月  基差均值季度二月  基差均值季度三月  基差均值滚动21  基差均值滚动63  \\\n",
       "t                                                                          \n",
       "2010-02-01         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-02         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-03         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-04         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-05         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "...                ...       ...       ...       ...       ...       ...   \n",
       "2023-12-21         1.0  0.333333  0.645833  0.604167  0.625000  0.375000   \n",
       "2023-12-22         1.0  0.291667  0.687500  0.541667  0.666667  0.395833   \n",
       "2023-12-25         1.0  0.354167  0.666667  0.520833  0.687500  0.395833   \n",
       "2023-12-26         1.0  0.333333  0.687500  0.437500  0.729167  0.416667   \n",
       "2023-12-27         1.0  0.375000  0.645833  0.479167  0.666667  0.416667   \n",
       "\n",
       "            基差均值滚动126  基差均值滚动252  基差均值滚动378  \n",
       "t                                            \n",
       "2010-02-01        NaN        NaN        NaN  \n",
       "2010-02-02        NaN        NaN        NaN  \n",
       "2010-02-03        NaN        NaN        NaN  \n",
       "2010-02-04        NaN        NaN        NaN  \n",
       "2010-02-05        NaN        NaN        NaN  \n",
       "...               ...        ...        ...  \n",
       "2023-12-21   0.395833   0.916667   0.791667  \n",
       "2023-12-22   0.312500   0.895833   0.729167  \n",
       "2023-12-25   0.375000   0.958333   0.708333  \n",
       "2023-12-26   0.395833   0.895833   0.708333  \n",
       "2023-12-27   0.458333   0.937500   0.750000  \n",
       "\n",
       "[3379 rows x 48 columns]"
      ]
     },
     "execution_count": 305,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "((ddd*(ddd>0)).rolling(21*3).sum()/ddd.abs().rolling(21*3).sum()).rank(1,pct=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4d79655e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4cf4087e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4523807c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "35cef9eb",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 237,
   "id": "38c61cfc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>因子</th>\n",
       "      <th>因子</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>因子</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.953423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>因子</th>\n",
       "      <td>-0.953423</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          因子        因子\n",
       "因子  1.000000 -0.953423\n",
       "因子 -0.953423  1.000000"
      ]
     },
     "execution_count": 237,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([rr,rr2],axis=1).cumsum().resample('W').sum().corr()\n",
    "# pd.concat([rr,rr2],axis=1).cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "230dc158",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "f68b9bfd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.132188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.132188</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1\n",
       "0  1.000000  0.132188\n",
       "1  0.132188  1.000000"
      ]
     },
     "execution_count": 129,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([ddd.mean(1).resample('M').sum(),ddd.mean(1).resample('M').sum().shift(1)],axis=1).corr()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "056a5e49",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e5c98658",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "4de6562d",
   "metadata": {},
   "outputs": [],
   "source": [
    "ddd = pd.concat([get_因子日度收益(globals()[因子名],因子名,收益率0,1) for 因子名 in 因子库],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "3b35ce56",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.2645104056994965"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(250**0.5)*ddd.mean(1).mean()/ddd.mean(1).std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a3ef50a3",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "345b23db",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 382,
   "id": "7d052d1d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>展期率01季度一月</th>\n",
       "      <th>展期率01季度二月</th>\n",
       "      <th>展期率01季度三月</th>\n",
       "      <th>展期率01滚动21</th>\n",
       "      <th>展期率01滚动63</th>\n",
       "      <th>展期率01滚动126</th>\n",
       "      <th>展期率01滚动252</th>\n",
       "      <th>展期率01滚动378</th>\n",
       "      <th>展期率02季度一月</th>\n",
       "      <th>展期率02季度二月</th>\n",
       "      <th>...</th>\n",
       "      <th>基差RSI滚动252</th>\n",
       "      <th>基差RSI滚动378</th>\n",
       "      <th>基差均值季度一月</th>\n",
       "      <th>基差均值季度二月</th>\n",
       "      <th>基差均值季度三月</th>\n",
       "      <th>基差均值滚动21</th>\n",
       "      <th>基差均值滚动63</th>\n",
       "      <th>基差均值滚动126</th>\n",
       "      <th>基差均值滚动252</th>\n",
       "      <th>基差均值滚动378</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-02-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-03</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-04</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-05</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-24</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4105 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            展期率01季度一月  展期率01季度二月  展期率01季度三月  展期率01滚动21  展期率01滚动63  展期率01滚动126  \\\n",
       "t                                                                               \n",
       "2010-02-01        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-02        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-03        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-04        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-05        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "...               ...        ...        ...        ...        ...         ...   \n",
       "2023-12-24        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2023-12-25        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2023-12-26        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2023-12-27        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2023-12-31        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "\n",
       "            展期率01滚动252  展期率01滚动378  展期率02季度一月  展期率02季度二月  ...  基差RSI滚动252  \\\n",
       "t                                                         ...               \n",
       "2010-02-01         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-02         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-03         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-04         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-05         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "...                ...         ...        ...        ...  ...         ...   \n",
       "2023-12-24         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2023-12-25         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2023-12-26         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2023-12-27         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2023-12-31         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "\n",
       "            基差RSI滚动378  基差均值季度一月  基差均值季度二月  基差均值季度三月  基差均值滚动21  基差均值滚动63  \\\n",
       "t                                                                          \n",
       "2010-02-01         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-02         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-03         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-04         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-05         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "...                ...       ...       ...       ...       ...       ...   \n",
       "2023-12-24         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2023-12-25         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2023-12-26         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2023-12-27         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2023-12-31         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "\n",
       "            基差均值滚动126  基差均值滚动252  基差均值滚动378  \n",
       "t                                            \n",
       "2010-02-01        NaN        NaN        NaN  \n",
       "2010-02-02        NaN        NaN        NaN  \n",
       "2010-02-03        NaN        NaN        NaN  \n",
       "2010-02-04        NaN        NaN        NaN  \n",
       "2010-02-05        NaN        NaN        NaN  \n",
       "...               ...        ...        ...  \n",
       "2023-12-24        NaN        NaN        NaN  \n",
       "2023-12-25        NaN        NaN        NaN  \n",
       "2023-12-26        NaN        NaN        NaN  \n",
       "2023-12-27        NaN        NaN        NaN  \n",
       "2023-12-31        NaN        NaN        NaN  \n",
       "\n",
       "[4105 rows x 48 columns]"
      ]
     },
     "execution_count": 382,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xxx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5299bf88",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 383,
   "id": "5501ac04",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7626205839816311\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d432392160>"
      ]
     },
     "execution_count": 383,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rrr = ddd.resample('M').sum().shift(-1)\n",
    "# xxx = (ddd.rolling(120).sum().rank(1,pct=True) > 0.8).resample('M').last()\n",
    "# xxx = ((ddd*(ddd>0)).rolling(21*24).sum()/ddd.abs().rolling(21*24).sum()).rank(1,pct=True)\n",
    "ddx = ddd.resample('W').sum()\n",
    "xxx = ((ddx*(ddx>0)).rolling(4*24).sum()/ddx.abs().rolling(4*24).sum()).rank(1,pct=True)\n",
    "xxx0 = (xxx > 0).resample('M').last()\n",
    "xxx1 = (xxx > 0.5).resample('M').last()\n",
    "xxx2 = (xxx < 0.5).resample('M').last()\n",
    "ret0 = (xxx0*rrr).sum(1)/xxx0.sum(1)\n",
    "ret1 = (xxx1*rrr).sum(1)/xxx1.sum(1)\n",
    "ret2 = (xxx2*rrr).sum(1)/xxx2.sum(1)\n",
    "ret = ret1 - ret2\n",
    "print((12**0.5)*ret.mean()/ret.std())\n",
    "ret.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5e3f7092",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 384,
   "id": "65ea5e73",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d4323f4700>"
      ]
     },
     "execution_count": 384,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pd.concat([ret0,ret1,ret2,ret],axis=1).cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 385,
   "id": "fab3961a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.930700</td>\n",
       "      <td>0.867906</td>\n",
       "      <td>0.239523</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.930700</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.787609</td>\n",
       "      <td>0.333706</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.867906</td>\n",
       "      <td>0.787609</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.069060</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.239523</td>\n",
       "      <td>0.333706</td>\n",
       "      <td>0.069060</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3\n",
       "0  1.000000  0.930700  0.867906  0.239523\n",
       "1  0.930700  1.000000  0.787609  0.333706\n",
       "2  0.867906  0.787609  1.000000  0.069060\n",
       "3  0.239523  0.333706  0.069060  1.000000"
      ]
     },
     "execution_count": 385,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([ret0,ret1,ret2,ret],axis=1).resample('W').sum().corr('spearman')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 386,
   "id": "590a8c55",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1.3451145605818984,\n",
       " 1.4036184767327018,\n",
       " 1.2144979777441272,\n",
       " 0.7626205839816311)"
      ]
     },
     "execution_count": 386,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(12**0.5)*ret0.mean()/ret0.std(),\\\n",
    "(12**0.5)*ret1.mean()/ret1.std(),\\\n",
    "(12**0.5)*ret2.mean()/ret2.std(),\\\n",
    "(12**0.5)*ret.mean()/ret.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 387,
   "id": "69c95b96",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.388539383606046"
      ]
     },
     "execution_count": 387,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xx = pd.concat([ret0,ret],axis=1).mean(1)\n",
    "(12**0.5)*xx.mean()/xx.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 358,
   "id": "8e712130",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "t\n",
       "2010-02-28         NaN\n",
       "2010-03-31         NaN\n",
       "2010-04-30         NaN\n",
       "2010-05-31         NaN\n",
       "2010-06-30         NaN\n",
       "                ...   \n",
       "2023-08-31   -0.007288\n",
       "2023-09-30    0.002383\n",
       "2023-10-31    0.013164\n",
       "2023-11-30    0.003172\n",
       "2023-12-31    0.000000\n",
       "Freq: M, Length: 167, dtype: float64"
      ]
     },
     "execution_count": 358,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9ae5923a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "38a9e4b8",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "展期率01季度一月     1.132916\n",
       "展期率01季度二月     1.176865\n",
       "展期率01季度三月     1.235454\n",
       "展期率01滚动21     0.983475\n",
       "展期率01滚动63     1.055367\n",
       "展期率01滚动126    1.232964\n",
       "展期率01滚动252    1.087455\n",
       "展期率01滚动378    1.110303\n",
       "展期率02季度一月     1.297124\n",
       "展期率02季度二月     1.451461\n",
       "展期率02季度三月     1.019742\n",
       "展期率02滚动21     0.935540\n",
       "展期率02滚动63     0.842409\n",
       "展期率02滚动126    1.019459\n",
       "展期率02滚动252    0.487967\n",
       "展期率02滚动378    0.264838\n",
       "基差率01季度一月     1.417345\n",
       "基差率01季度二月     0.748281\n",
       "基差率01季度三月     0.593664\n",
       "基差率01滚动21     0.213979\n",
       "基差率01滚动63     0.870537\n",
       "基差率01滚动126    0.903578\n",
       "基差率01滚动252    0.924406\n",
       "基差率01滚动378    1.247826\n",
       "基差率02季度一月     0.928632\n",
       "基差率02季度二月     0.710577\n",
       "基差率02季度三月     0.451240\n",
       "基差率02滚动21     0.075748\n",
       "基差率02滚动63     0.189936\n",
       "基差率02滚动126    0.656410\n",
       "基差率02滚动252    0.846902\n",
       "基差率02滚动378    0.952909\n",
       "基差RSI季度一月     0.858480\n",
       "基差RSI季度二月     0.627746\n",
       "基差RSI季度三月     0.648728\n",
       "基差RSI滚动21     0.666594\n",
       "基差RSI滚动63     0.665066\n",
       "基差RSI滚动126    0.704464\n",
       "基差RSI滚动252    0.592220\n",
       "基差RSI滚动378    0.618386\n",
       "基差均值季度一月      1.266532\n",
       "基差均值季度二月      1.110886\n",
       "基差均值季度三月      1.050228\n",
       "基差均值滚动21      0.979505\n",
       "基差均值滚动63      1.055188\n",
       "基差均值滚动126     1.133103\n",
       "基差均值滚动252     0.938461\n",
       "基差均值滚动378     1.041638\n",
       "dtype: float64"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(250**0.5)*ddd.mean()/ddd.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "f56b9f7d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1d419289af0>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ddd['基差率02滚动126'].cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "8fd26eb9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>展期率01季度一月</th>\n",
       "      <th>展期率01季度二月</th>\n",
       "      <th>展期率01季度三月</th>\n",
       "      <th>展期率01滚动21</th>\n",
       "      <th>展期率01滚动63</th>\n",
       "      <th>展期率01滚动126</th>\n",
       "      <th>展期率01滚动252</th>\n",
       "      <th>展期率01滚动378</th>\n",
       "      <th>展期率02季度一月</th>\n",
       "      <th>展期率02季度二月</th>\n",
       "      <th>...</th>\n",
       "      <th>基差RSI滚动252</th>\n",
       "      <th>基差RSI滚动378</th>\n",
       "      <th>基差均值季度一月</th>\n",
       "      <th>基差均值季度二月</th>\n",
       "      <th>基差均值季度三月</th>\n",
       "      <th>基差均值滚动21</th>\n",
       "      <th>基差均值滚动63</th>\n",
       "      <th>基差均值滚动126</th>\n",
       "      <th>基差均值滚动252</th>\n",
       "      <th>基差均值滚动378</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-02-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-03</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-04</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-05</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-21</th>\n",
       "      <td>0.004263</td>\n",
       "      <td>0.003865</td>\n",
       "      <td>0.003400</td>\n",
       "      <td>0.001792</td>\n",
       "      <td>0.003999</td>\n",
       "      <td>0.003283</td>\n",
       "      <td>0.003731</td>\n",
       "      <td>0.002145</td>\n",
       "      <td>0.003759</td>\n",
       "      <td>0.003388</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000433</td>\n",
       "      <td>0.001325</td>\n",
       "      <td>0.003500</td>\n",
       "      <td>0.003188</td>\n",
       "      <td>0.003904</td>\n",
       "      <td>0.003220</td>\n",
       "      <td>0.003188</td>\n",
       "      <td>0.003213</td>\n",
       "      <td>0.002790</td>\n",
       "      <td>0.002796</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-22</th>\n",
       "      <td>-0.002047</td>\n",
       "      <td>-0.001381</td>\n",
       "      <td>-0.002120</td>\n",
       "      <td>-0.002059</td>\n",
       "      <td>-0.000546</td>\n",
       "      <td>-0.002934</td>\n",
       "      <td>-0.000907</td>\n",
       "      <td>-0.002684</td>\n",
       "      <td>-0.002859</td>\n",
       "      <td>-0.001902</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.003198</td>\n",
       "      <td>-0.003242</td>\n",
       "      <td>-0.001697</td>\n",
       "      <td>-0.002034</td>\n",
       "      <td>-0.001812</td>\n",
       "      <td>-0.000568</td>\n",
       "      <td>-0.002034</td>\n",
       "      <td>-0.001748</td>\n",
       "      <td>-0.003243</td>\n",
       "      <td>-0.002717</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>-0.005171</td>\n",
       "      <td>-0.004851</td>\n",
       "      <td>-0.003307</td>\n",
       "      <td>-0.001695</td>\n",
       "      <td>-0.005731</td>\n",
       "      <td>-0.004580</td>\n",
       "      <td>-0.005912</td>\n",
       "      <td>-0.004201</td>\n",
       "      <td>-0.005733</td>\n",
       "      <td>-0.004453</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.002688</td>\n",
       "      <td>-0.003224</td>\n",
       "      <td>-0.006053</td>\n",
       "      <td>-0.006390</td>\n",
       "      <td>-0.004663</td>\n",
       "      <td>-0.006519</td>\n",
       "      <td>-0.006390</td>\n",
       "      <td>-0.005340</td>\n",
       "      <td>-0.003714</td>\n",
       "      <td>-0.003779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>0.003936</td>\n",
       "      <td>0.000778</td>\n",
       "      <td>0.003250</td>\n",
       "      <td>0.001444</td>\n",
       "      <td>0.001030</td>\n",
       "      <td>0.003811</td>\n",
       "      <td>0.000061</td>\n",
       "      <td>-0.000089</td>\n",
       "      <td>0.001873</td>\n",
       "      <td>0.000890</td>\n",
       "      <td>...</td>\n",
       "      <td>0.001761</td>\n",
       "      <td>0.001271</td>\n",
       "      <td>0.003811</td>\n",
       "      <td>0.003527</td>\n",
       "      <td>0.001701</td>\n",
       "      <td>0.003821</td>\n",
       "      <td>0.003527</td>\n",
       "      <td>0.003466</td>\n",
       "      <td>0.000358</td>\n",
       "      <td>0.000284</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>0.002673</td>\n",
       "      <td>0.002493</td>\n",
       "      <td>0.002629</td>\n",
       "      <td>-0.003510</td>\n",
       "      <td>0.002662</td>\n",
       "      <td>0.002857</td>\n",
       "      <td>0.000129</td>\n",
       "      <td>0.001796</td>\n",
       "      <td>0.001911</td>\n",
       "      <td>0.000255</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000177</td>\n",
       "      <td>0.001812</td>\n",
       "      <td>0.003765</td>\n",
       "      <td>0.004699</td>\n",
       "      <td>0.002291</td>\n",
       "      <td>0.000964</td>\n",
       "      <td>0.004699</td>\n",
       "      <td>0.003213</td>\n",
       "      <td>0.002773</td>\n",
       "      <td>0.003106</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3379 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            展期率01季度一月  展期率01季度二月  展期率01季度三月  展期率01滚动21  展期率01滚动63  展期率01滚动126  \\\n",
       "t                                                                               \n",
       "2010-02-01        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-02        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-03        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-04        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "2010-02-05        NaN        NaN        NaN        NaN        NaN         NaN   \n",
       "...               ...        ...        ...        ...        ...         ...   \n",
       "2023-12-21   0.004263   0.003865   0.003400   0.001792   0.003999    0.003283   \n",
       "2023-12-22  -0.002047  -0.001381  -0.002120  -0.002059  -0.000546   -0.002934   \n",
       "2023-12-25  -0.005171  -0.004851  -0.003307  -0.001695  -0.005731   -0.004580   \n",
       "2023-12-26   0.003936   0.000778   0.003250   0.001444   0.001030    0.003811   \n",
       "2023-12-27   0.002673   0.002493   0.002629  -0.003510   0.002662    0.002857   \n",
       "\n",
       "            展期率01滚动252  展期率01滚动378  展期率02季度一月  展期率02季度二月  ...  基差RSI滚动252  \\\n",
       "t                                                         ...               \n",
       "2010-02-01         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-02         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-03         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-04         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "2010-02-05         NaN         NaN        NaN        NaN  ...         NaN   \n",
       "...                ...         ...        ...        ...  ...         ...   \n",
       "2023-12-21    0.003731    0.002145   0.003759   0.003388  ...    0.000433   \n",
       "2023-12-22   -0.000907   -0.002684  -0.002859  -0.001902  ...   -0.003198   \n",
       "2023-12-25   -0.005912   -0.004201  -0.005733  -0.004453  ...   -0.002688   \n",
       "2023-12-26    0.000061   -0.000089   0.001873   0.000890  ...    0.001761   \n",
       "2023-12-27    0.000129    0.001796   0.001911   0.000255  ...    0.000177   \n",
       "\n",
       "            基差RSI滚动378  基差均值季度一月  基差均值季度二月  基差均值季度三月  基差均值滚动21  基差均值滚动63  \\\n",
       "t                                                                          \n",
       "2010-02-01         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-02         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-03         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-04         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "2010-02-05         NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "...                ...       ...       ...       ...       ...       ...   \n",
       "2023-12-21    0.001325  0.003500  0.003188  0.003904  0.003220  0.003188   \n",
       "2023-12-22   -0.003242 -0.001697 -0.002034 -0.001812 -0.000568 -0.002034   \n",
       "2023-12-25   -0.003224 -0.006053 -0.006390 -0.004663 -0.006519 -0.006390   \n",
       "2023-12-26    0.001271  0.003811  0.003527  0.001701  0.003821  0.003527   \n",
       "2023-12-27    0.001812  0.003765  0.004699  0.002291  0.000964  0.004699   \n",
       "\n",
       "            基差均值滚动126  基差均值滚动252  基差均值滚动378  \n",
       "t                                            \n",
       "2010-02-01        NaN        NaN        NaN  \n",
       "2010-02-02        NaN        NaN        NaN  \n",
       "2010-02-03        NaN        NaN        NaN  \n",
       "2010-02-04        NaN        NaN        NaN  \n",
       "2010-02-05        NaN        NaN        NaN  \n",
       "...               ...        ...        ...  \n",
       "2023-12-21   0.003213   0.002790   0.002796  \n",
       "2023-12-22  -0.001748  -0.003243  -0.002717  \n",
       "2023-12-25  -0.005340  -0.003714  -0.003779  \n",
       "2023-12-26   0.003466   0.000358   0.000284  \n",
       "2023-12-27   0.003213   0.002773   0.003106  \n",
       "\n",
       "[3379 rows x 48 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "51b8e85f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "842228e2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "aa\n"
     ]
    }
   ],
   "source": [
    "def get_var_name(**kwargs):\n",
    "    return [name for name in kwargs]\n",
    "\n",
    "xxxx = 123\n",
    "name = get_var_name(aa=xxxx)[0]\n",
    "print(name)  # 输出: \"my_var\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "869a4c94",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['展期率01季度一月',\n",
       " '展期率01季度二月',\n",
       " '展期率01季度三月',\n",
       " '展期率01滚动21',\n",
       " '展期率01滚动63',\n",
       " '展期率01滚动126',\n",
       " '展期率01滚动252',\n",
       " '展期率01滚动378',\n",
       " '展期率02季度一月',\n",
       " '展期率02季度二月',\n",
       " '展期率02季度三月',\n",
       " '展期率02滚动21',\n",
       " '展期率02滚动63',\n",
       " '展期率02滚动126',\n",
       " '展期率02滚动252',\n",
       " '展期率02滚动378',\n",
       " '基差率01季度一月',\n",
       " '基差率01季度二月',\n",
       " '基差率01季度三月',\n",
       " '基差率01滚动21',\n",
       " '基差率01滚动63',\n",
       " '基差率01滚动126',\n",
       " '基差率01滚动252',\n",
       " '基差率01滚动378',\n",
       " '基差率02季度一月',\n",
       " '基差率02季度二月',\n",
       " '基差率02季度三月',\n",
       " '基差率02滚动21',\n",
       " '基差率02滚动63',\n",
       " '基差率02滚动126',\n",
       " '基差率02滚动252',\n",
       " '基差率02滚动378',\n",
       " '基差RSI季度一月',\n",
       " '基差RSI季度二月',\n",
       " '基差RSI季度三月',\n",
       " '基差RSI滚动21',\n",
       " '基差RSI滚动63',\n",
       " '基差RSI滚动126',\n",
       " '基差RSI滚动252',\n",
       " '基差RSI滚动378',\n",
       " '基差均值季度一月',\n",
       " '基差均值季度二月',\n",
       " '基差均值季度三月',\n",
       " '基差均值滚动21',\n",
       " '基差均值滚动63',\n",
       " '基差均值滚动126',\n",
       " '基差均值滚动252',\n",
       " '基差均值滚动378']"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "因子库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64b94a30",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "cc17e07a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1e36dfab100>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rr.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "c95e754a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>BU</th>\n",
       "      <th>EB</th>\n",
       "      <th>FG</th>\n",
       "      <th>FU</th>\n",
       "      <th>I</th>\n",
       "      <th>LU</th>\n",
       "      <th>M</th>\n",
       "      <th>RM</th>\n",
       "      <th>SA</th>\n",
       "      <th>UR</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2023-12-01</th>\n",
       "      <td>-0.005420</td>\n",
       "      <td>-0.024408</td>\n",
       "      <td>0.072107</td>\n",
       "      <td>-0.027872</td>\n",
       "      <td>0.006189</td>\n",
       "      <td>-0.010631</td>\n",
       "      <td>-0.006435</td>\n",
       "      <td>-0.027886</td>\n",
       "      <td>0.045864</td>\n",
       "      <td>0.014731</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-04</th>\n",
       "      <td>-0.016349</td>\n",
       "      <td>-0.014207</td>\n",
       "      <td>-0.016163</td>\n",
       "      <td>-0.022619</td>\n",
       "      <td>-0.017940</td>\n",
       "      <td>-0.027686</td>\n",
       "      <td>0.006736</td>\n",
       "      <td>-0.006899</td>\n",
       "      <td>0.032498</td>\n",
       "      <td>-0.017506</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-05</th>\n",
       "      <td>-0.003601</td>\n",
       "      <td>0.005229</td>\n",
       "      <td>-0.016958</td>\n",
       "      <td>0.010104</td>\n",
       "      <td>0.008351</td>\n",
       "      <td>0.002190</td>\n",
       "      <td>0.004889</td>\n",
       "      <td>0.013894</td>\n",
       "      <td>0.052711</td>\n",
       "      <td>0.037375</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-06</th>\n",
       "      <td>0.003336</td>\n",
       "      <td>0.019158</td>\n",
       "      <td>0.002156</td>\n",
       "      <td>-0.011617</td>\n",
       "      <td>0.025358</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.005634</td>\n",
       "      <td>0.008294</td>\n",
       "      <td>-0.019092</td>\n",
       "      <td>0.018852</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-07</th>\n",
       "      <td>-0.003300</td>\n",
       "      <td>-0.006971</td>\n",
       "      <td>0.020979</td>\n",
       "      <td>-0.044074</td>\n",
       "      <td>0.023656</td>\n",
       "      <td>-0.040311</td>\n",
       "      <td>0.004074</td>\n",
       "      <td>0.003934</td>\n",
       "      <td>0.093570</td>\n",
       "      <td>-0.022615</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-08</th>\n",
       "      <td>0.022075</td>\n",
       "      <td>0.015043</td>\n",
       "      <td>-0.022055</td>\n",
       "      <td>0.009904</td>\n",
       "      <td>0.012080</td>\n",
       "      <td>0.003796</td>\n",
       "      <td>0.008876</td>\n",
       "      <td>0.012825</td>\n",
       "      <td>0.023256</td>\n",
       "      <td>-0.019773</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-11</th>\n",
       "      <td>-0.003780</td>\n",
       "      <td>0.000741</td>\n",
       "      <td>-0.025628</td>\n",
       "      <td>0.005073</td>\n",
       "      <td>-0.008822</td>\n",
       "      <td>0.015125</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.007035</td>\n",
       "      <td>-0.015437</td>\n",
       "      <td>-0.002671</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-12</th>\n",
       "      <td>0.001084</td>\n",
       "      <td>0.004690</td>\n",
       "      <td>-0.011047</td>\n",
       "      <td>0.013795</td>\n",
       "      <td>0.015183</td>\n",
       "      <td>0.005960</td>\n",
       "      <td>0.017847</td>\n",
       "      <td>0.016067</td>\n",
       "      <td>-0.000436</td>\n",
       "      <td>0.026339</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-13</th>\n",
       "      <td>-0.007038</td>\n",
       "      <td>-0.022724</td>\n",
       "      <td>-0.025532</td>\n",
       "      <td>-0.037836</td>\n",
       "      <td>-0.022176</td>\n",
       "      <td>-0.040731</td>\n",
       "      <td>-0.004599</td>\n",
       "      <td>-0.008938</td>\n",
       "      <td>-0.035294</td>\n",
       "      <td>-0.021314</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-14</th>\n",
       "      <td>0.007088</td>\n",
       "      <td>0.016843</td>\n",
       "      <td>0.001092</td>\n",
       "      <td>0.011356</td>\n",
       "      <td>-0.006329</td>\n",
       "      <td>0.009264</td>\n",
       "      <td>-0.015593</td>\n",
       "      <td>-0.015956</td>\n",
       "      <td>-0.013550</td>\n",
       "      <td>-0.013778</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-15</th>\n",
       "      <td>0.004602</td>\n",
       "      <td>0.004203</td>\n",
       "      <td>-0.010360</td>\n",
       "      <td>0.016332</td>\n",
       "      <td>-0.007431</td>\n",
       "      <td>0.020653</td>\n",
       "      <td>-0.001467</td>\n",
       "      <td>0.000349</td>\n",
       "      <td>0.010531</td>\n",
       "      <td>-0.004957</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-18</th>\n",
       "      <td>-0.009701</td>\n",
       "      <td>0.012555</td>\n",
       "      <td>-0.020937</td>\n",
       "      <td>0.003013</td>\n",
       "      <td>-0.007487</td>\n",
       "      <td>0.020984</td>\n",
       "      <td>-0.008226</td>\n",
       "      <td>-0.017109</td>\n",
       "      <td>-0.013593</td>\n",
       "      <td>-0.009964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-19</th>\n",
       "      <td>0.007891</td>\n",
       "      <td>-0.002301</td>\n",
       "      <td>0.006190</td>\n",
       "      <td>0.007009</td>\n",
       "      <td>-0.005388</td>\n",
       "      <td>0.013213</td>\n",
       "      <td>0.001185</td>\n",
       "      <td>0.007460</td>\n",
       "      <td>-0.025723</td>\n",
       "      <td>-0.009149</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-20</th>\n",
       "      <td>0.006210</td>\n",
       "      <td>0.028277</td>\n",
       "      <td>0.012304</td>\n",
       "      <td>0.011932</td>\n",
       "      <td>0.017335</td>\n",
       "      <td>0.016904</td>\n",
       "      <td>-0.007396</td>\n",
       "      <td>-0.001763</td>\n",
       "      <td>0.001414</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-21</th>\n",
       "      <td>0.002146</td>\n",
       "      <td>0.013100</td>\n",
       "      <td>0.046409</td>\n",
       "      <td>0.006878</td>\n",
       "      <td>0.030884</td>\n",
       "      <td>-0.003325</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.016955</td>\n",
       "      <td>0.020716</td>\n",
       "      <td>-0.002770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-22</th>\n",
       "      <td>0.000268</td>\n",
       "      <td>-0.007456</td>\n",
       "      <td>0.008976</td>\n",
       "      <td>0.007807</td>\n",
       "      <td>0.009298</td>\n",
       "      <td>0.006195</td>\n",
       "      <td>-0.009836</td>\n",
       "      <td>-0.015283</td>\n",
       "      <td>0.005535</td>\n",
       "      <td>-0.013889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-25</th>\n",
       "      <td>-0.005621</td>\n",
       "      <td>0.003873</td>\n",
       "      <td>-0.020408</td>\n",
       "      <td>-0.015494</td>\n",
       "      <td>-0.006653</td>\n",
       "      <td>-0.005446</td>\n",
       "      <td>0.006623</td>\n",
       "      <td>0.004233</td>\n",
       "      <td>-0.032110</td>\n",
       "      <td>-0.023944</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-26</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>-0.001520</td>\n",
       "      <td>0.001603</td>\n",
       "      <td>0.008197</td>\n",
       "      <td>0.013395</td>\n",
       "      <td>0.000238</td>\n",
       "      <td>-0.001794</td>\n",
       "      <td>-0.004215</td>\n",
       "      <td>-0.004265</td>\n",
       "      <td>0.002886</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-27</th>\n",
       "      <td>0.012113</td>\n",
       "      <td>0.004450</td>\n",
       "      <td>0.006933</td>\n",
       "      <td>0.016260</td>\n",
       "      <td>0.002034</td>\n",
       "      <td>0.020709</td>\n",
       "      <td>0.007789</td>\n",
       "      <td>0.027513</td>\n",
       "      <td>-0.010471</td>\n",
       "      <td>-0.000480</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  BU        EB        FG        FU         I        LU  \\\n",
       "t                                                                        \n",
       "2023-12-01 -0.005420 -0.024408  0.072107 -0.027872  0.006189 -0.010631   \n",
       "2023-12-04 -0.016349 -0.014207 -0.016163 -0.022619 -0.017940 -0.027686   \n",
       "2023-12-05 -0.003601  0.005229 -0.016958  0.010104  0.008351  0.002190   \n",
       "2023-12-06  0.003336  0.019158  0.002156 -0.011617  0.025358  0.000000   \n",
       "2023-12-07 -0.003300 -0.006971  0.020979 -0.044074  0.023656 -0.040311   \n",
       "2023-12-08  0.022075  0.015043 -0.022055  0.009904  0.012080  0.003796   \n",
       "2023-12-11 -0.003780  0.000741 -0.025628  0.005073 -0.008822  0.015125   \n",
       "2023-12-12  0.001084  0.004690 -0.011047  0.013795  0.015183  0.005960   \n",
       "2023-12-13 -0.007038 -0.022724 -0.025532 -0.037836 -0.022176 -0.040731   \n",
       "2023-12-14  0.007088  0.016843  0.001092  0.011356 -0.006329  0.009264   \n",
       "2023-12-15  0.004602  0.004203 -0.010360  0.016332 -0.007431  0.020653   \n",
       "2023-12-18 -0.009701  0.012555 -0.020937  0.003013 -0.007487  0.020984   \n",
       "2023-12-19  0.007891 -0.002301  0.006190  0.007009 -0.005388  0.013213   \n",
       "2023-12-20  0.006210  0.028277  0.012304  0.011932  0.017335  0.016904   \n",
       "2023-12-21  0.002146  0.013100  0.046409  0.006878  0.030884 -0.003325   \n",
       "2023-12-22  0.000268 -0.007456  0.008976  0.007807  0.009298  0.006195   \n",
       "2023-12-25 -0.005621  0.003873 -0.020408 -0.015494 -0.006653 -0.005446   \n",
       "2023-12-26  0.000000 -0.001520  0.001603  0.008197  0.013395  0.000238   \n",
       "2023-12-27  0.012113  0.004450  0.006933  0.016260  0.002034  0.020709   \n",
       "\n",
       "                   M        RM        SA        UR  \n",
       "t                                                   \n",
       "2023-12-01 -0.006435 -0.027886  0.045864  0.014731  \n",
       "2023-12-04  0.006736 -0.006899  0.032498 -0.017506  \n",
       "2023-12-05  0.004889  0.013894  0.052711  0.037375  \n",
       "2023-12-06  0.005634  0.008294 -0.019092  0.018852  \n",
       "2023-12-07  0.004074  0.003934  0.093570 -0.022615  \n",
       "2023-12-08  0.008876  0.012825  0.023256 -0.019773  \n",
       "2023-12-11  0.000000  0.007035 -0.015437 -0.002671  \n",
       "2023-12-12  0.017847  0.016067 -0.000436  0.026339  \n",
       "2023-12-13 -0.004599 -0.008938 -0.035294 -0.021314  \n",
       "2023-12-14 -0.015593 -0.015956 -0.013550 -0.013778  \n",
       "2023-12-15 -0.001467  0.000349  0.010531 -0.004957  \n",
       "2023-12-18 -0.008226 -0.017109 -0.013593 -0.009964  \n",
       "2023-12-19  0.001185  0.007460 -0.025723 -0.009149  \n",
       "2023-12-20 -0.007396 -0.001763  0.001414  0.000000  \n",
       "2023-12-21  0.000000  0.016955  0.020716 -0.002770  \n",
       "2023-12-22 -0.009836 -0.015283  0.005535 -0.013889  \n",
       "2023-12-25  0.006623  0.004233 -0.032110 -0.023944  \n",
       "2023-12-26 -0.001794 -0.004215 -0.004265  0.002886  \n",
       "2023-12-27  0.007789  0.027513 -0.010471 -0.000480  "
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "收益率0[当期做多][s_date+timedelta(days=1):e_date]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "a5451437",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1a766dd2cd0>"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_因子日度收益(因子,收益率0,ttp,thres=0.2).cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "43175a1e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "fb312f99",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "t\n",
       "2010-12-01    0.006009\n",
       "2010-12-02    0.025825\n",
       "2010-12-03    0.008701\n",
       "2010-12-06    0.002864\n",
       "2010-12-07    0.011791\n",
       "2010-12-08   -0.024150\n",
       "2010-12-09    0.011971\n",
       "2010-12-10    0.006724\n",
       "2010-12-13    0.018486\n",
       "2010-12-14    0.012284\n",
       "2010-12-15   -0.017307\n",
       "2010-12-16    0.001836\n",
       "2010-12-17    0.009806\n",
       "2010-12-20    0.008565\n",
       "2010-12-21    0.011441\n",
       "2010-12-22   -0.019310\n",
       "2010-12-23    0.004545\n",
       "2010-12-24    0.003519\n",
       "2010-12-27   -0.004053\n",
       "2010-12-28    0.005663\n",
       "2010-12-29   -0.002038\n",
       "2010-12-30    0.013261\n",
       "2010-12-31    0.010998\n",
       "dtype: float64"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "做多收益 = 收益率0[当期做多][s_date+timedelta(days=1):e_date].mean(1)*1\n",
    "做空收益 = 收益率0[当期做空][s_date+timedelta(days=1):e_date].mean(1)*-1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e67db760",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "e65bf50b",
   "metadata": {},
   "outputs": [],
   "source": [
    "def func_backtest(dff_tp, low_rate, high_rate, ddds, ttp, 期货前缀s, nn):\n",
    "    if ttp == 1:\n",
    "        做多的品种 = dff_tp.rank(1, pct=True) > high_rate\n",
    "        做空的品种 = dff_tp.rank(1, pct=True) < low_rate\n",
    "    elif ttp == -1:\n",
    "        做多的品种 = dff_tp.rank(1, pct=True) < low_rate\n",
    "        做空的品种 = dff_tp.rank(1, pct=True) > high_rate\n",
    "\n",
    "    dd_rets = []\n",
    "    for i in range(len(dff_tp) - nn):\n",
    "        s1_date = dff_tp.index[i]\n",
    "        s_date = dff_tp.index[i + nn - 1]\n",
    "        e_date = dff_tp.index[i + nn]\n",
    "        longs = list(做多的品种.loc[s1_date][做多的品种.loc[s1_date]].index)\n",
    "        shorts = list(做空的品种.loc[s1_date][做空的品种.loc[s1_date]].index)\n",
    "\n",
    "        longs_ret = []\n",
    "        for 品种 in longs:\n",
    "            longs_ret.append(ddds[期货前缀s.index(品种)][s_date:e_date]['收益率0'])\n",
    "\n",
    "        shorts_ret = []\n",
    "        for 品种 in shorts:\n",
    "            shorts_ret.append(ddds[期货前缀s.index(品种)][s_date:e_date]['收益率0'])\n",
    "\n",
    "        if len(longs_ret) != 0 and len(shorts_ret) != 0:\n",
    "            dd_long_ret = pd.concat(longs_ret, axis=1) * 1\n",
    "            dd_long_ret.columns = longs\n",
    "            dd_short_ret = pd.concat(shorts_ret, axis=1) * -1\n",
    "            dd_short_ret.columns = shorts\n",
    "            #     dd_ret = pd.concat([dd_long_ret,dd_short_ret],axis=1).mean(1)\n",
    "            dd_ret = (dd_long_ret.mean(1) + dd_short_ret.mean(1)) / 2\n",
    "            dd_rets.append(dd_ret)\n",
    "    ddd = pd.concat(dd_rets).sort_index()\n",
    "    ddd = ddd[~ddd.index.duplicated()]\n",
    "    return ddd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fa749d2d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "747fd205",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "45ce3204",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "5ca96015",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>AG</th>\n",
       "      <th>AL</th>\n",
       "      <th>AP</th>\n",
       "      <th>AU</th>\n",
       "      <th>B</th>\n",
       "      <th>BB</th>\n",
       "      <th>BC</th>\n",
       "      <th>BU</th>\n",
       "      <th>C</th>\n",
       "      <th>...</th>\n",
       "      <th>TS</th>\n",
       "      <th>UR</th>\n",
       "      <th>V</th>\n",
       "      <th>WH</th>\n",
       "      <th>WR</th>\n",
       "      <th>WS</th>\n",
       "      <th>WT</th>\n",
       "      <th>Y</th>\n",
       "      <th>ZC</th>\n",
       "      <th>ZN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-01-31</th>\n",
       "      <td>0.054932</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.095562</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.018448</td>\n",
       "      <td>0.126646</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.094705</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.329501</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.270878</td>\n",
       "      <td>-0.094524</td>\n",
       "      <td>-0.076336</td>\n",
       "      <td>-0.049417</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.103201</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-28</th>\n",
       "      <td>0.054932</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.095562</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.018448</td>\n",
       "      <td>0.126646</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.094705</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.329501</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.270878</td>\n",
       "      <td>-0.094524</td>\n",
       "      <td>-0.076336</td>\n",
       "      <td>-0.049417</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.103201</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-03-31</th>\n",
       "      <td>0.054932</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.095562</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.018448</td>\n",
       "      <td>0.126646</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.094705</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.329501</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.270878</td>\n",
       "      <td>-0.094524</td>\n",
       "      <td>-0.076336</td>\n",
       "      <td>-0.049417</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.103201</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-30</th>\n",
       "      <td>0.020276</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.112715</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.006653</td>\n",
       "      <td>0.079637</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.009294</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.188492</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.207353</td>\n",
       "      <td>-0.039900</td>\n",
       "      <td>-0.133085</td>\n",
       "      <td>-0.057012</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.111592</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-05-31</th>\n",
       "      <td>0.020276</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.112715</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.006653</td>\n",
       "      <td>0.079637</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.009294</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.188492</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.207353</td>\n",
       "      <td>-0.039900</td>\n",
       "      <td>-0.133085</td>\n",
       "      <td>-0.057012</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.111592</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-09-30</th>\n",
       "      <td>0.168390</td>\n",
       "      <td>-0.018867</td>\n",
       "      <td>0.101627</td>\n",
       "      <td>0.029771</td>\n",
       "      <td>-0.013900</td>\n",
       "      <td>0.118517</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.019368</td>\n",
       "      <td>0.150861</td>\n",
       "      <td>0.154866</td>\n",
       "      <td>...</td>\n",
       "      <td>0.004276</td>\n",
       "      <td>0.160016</td>\n",
       "      <td>-0.028127</td>\n",
       "      <td>-0.126986</td>\n",
       "      <td>0.047562</td>\n",
       "      <td>-0.055678</td>\n",
       "      <td>-0.019480</td>\n",
       "      <td>0.055833</td>\n",
       "      <td>-0.398606</td>\n",
       "      <td>0.084081</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-10-31</th>\n",
       "      <td>0.039002</td>\n",
       "      <td>-0.013159</td>\n",
       "      <td>0.076255</td>\n",
       "      <td>-0.014932</td>\n",
       "      <td>-0.008550</td>\n",
       "      <td>0.205151</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.016534</td>\n",
       "      <td>0.164337</td>\n",
       "      <td>0.116031</td>\n",
       "      <td>...</td>\n",
       "      <td>0.002475</td>\n",
       "      <td>0.315816</td>\n",
       "      <td>-0.046956</td>\n",
       "      <td>-0.126986</td>\n",
       "      <td>-0.101608</td>\n",
       "      <td>-0.055678</td>\n",
       "      <td>-0.019480</td>\n",
       "      <td>0.134500</td>\n",
       "      <td>-0.398606</td>\n",
       "      <td>0.094958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-11-30</th>\n",
       "      <td>0.039002</td>\n",
       "      <td>-0.013159</td>\n",
       "      <td>0.076255</td>\n",
       "      <td>-0.014932</td>\n",
       "      <td>-0.008550</td>\n",
       "      <td>0.205151</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.016534</td>\n",
       "      <td>0.164337</td>\n",
       "      <td>0.116031</td>\n",
       "      <td>...</td>\n",
       "      <td>0.002475</td>\n",
       "      <td>0.315816</td>\n",
       "      <td>-0.046956</td>\n",
       "      <td>-0.126986</td>\n",
       "      <td>-0.101608</td>\n",
       "      <td>-0.055678</td>\n",
       "      <td>-0.019480</td>\n",
       "      <td>0.134500</td>\n",
       "      <td>-0.398606</td>\n",
       "      <td>0.094958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>0.039002</td>\n",
       "      <td>-0.013159</td>\n",
       "      <td>0.076255</td>\n",
       "      <td>-0.014932</td>\n",
       "      <td>-0.008550</td>\n",
       "      <td>0.205151</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.016534</td>\n",
       "      <td>0.164337</td>\n",
       "      <td>0.116031</td>\n",
       "      <td>...</td>\n",
       "      <td>0.002475</td>\n",
       "      <td>0.315816</td>\n",
       "      <td>-0.046956</td>\n",
       "      <td>-0.126986</td>\n",
       "      <td>-0.101608</td>\n",
       "      <td>-0.055678</td>\n",
       "      <td>-0.019480</td>\n",
       "      <td>0.134500</td>\n",
       "      <td>-0.398606</td>\n",
       "      <td>0.094958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2024-01-31</th>\n",
       "      <td>0.046319</td>\n",
       "      <td>-0.013154</td>\n",
       "      <td>0.034584</td>\n",
       "      <td>0.189988</td>\n",
       "      <td>-0.010196</td>\n",
       "      <td>-0.003675</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.006127</td>\n",
       "      <td>-0.051162</td>\n",
       "      <td>0.014578</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.002530</td>\n",
       "      <td>0.193886</td>\n",
       "      <td>-0.084224</td>\n",
       "      <td>-0.126986</td>\n",
       "      <td>0.016949</td>\n",
       "      <td>-0.055678</td>\n",
       "      <td>-0.019480</td>\n",
       "      <td>0.134327</td>\n",
       "      <td>-0.398606</td>\n",
       "      <td>0.035958</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>169 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                   A        AG        AL        AP        AU         B   BB  \\\n",
       "t                                                                             \n",
       "2010-01-31  0.054932       NaN -0.095562       NaN -0.018448  0.126646  NaN   \n",
       "2010-02-28  0.054932       NaN -0.095562       NaN -0.018448  0.126646  NaN   \n",
       "2010-03-31  0.054932       NaN -0.095562       NaN -0.018448  0.126646  NaN   \n",
       "2010-04-30  0.020276       NaN -0.112715       NaN -0.006653  0.079637  NaN   \n",
       "2010-05-31  0.020276       NaN -0.112715       NaN -0.006653  0.079637  NaN   \n",
       "...              ...       ...       ...       ...       ...       ...  ...   \n",
       "2023-09-30  0.168390 -0.018867  0.101627  0.029771 -0.013900  0.118517  0.0   \n",
       "2023-10-31  0.039002 -0.013159  0.076255 -0.014932 -0.008550  0.205151  0.0   \n",
       "2023-11-30  0.039002 -0.013159  0.076255 -0.014932 -0.008550  0.205151  0.0   \n",
       "2023-12-31  0.039002 -0.013159  0.076255 -0.014932 -0.008550  0.205151  0.0   \n",
       "2024-01-31  0.046319 -0.013154  0.034584  0.189988 -0.010196 -0.003675  0.0   \n",
       "\n",
       "                  BC        BU         C  ...        TS        UR         V  \\\n",
       "t                                         ...                                 \n",
       "2010-01-31       NaN       NaN -0.094705  ...       NaN       NaN -0.329501   \n",
       "2010-02-28       NaN       NaN -0.094705  ...       NaN       NaN -0.329501   \n",
       "2010-03-31       NaN       NaN -0.094705  ...       NaN       NaN -0.329501   \n",
       "2010-04-30       NaN       NaN -0.009294  ...       NaN       NaN -0.188492   \n",
       "2010-05-31       NaN       NaN -0.009294  ...       NaN       NaN -0.188492   \n",
       "...              ...       ...       ...  ...       ...       ...       ...   \n",
       "2023-09-30  0.019368  0.150861  0.154866  ...  0.004276  0.160016 -0.028127   \n",
       "2023-10-31  0.016534  0.164337  0.116031  ...  0.002475  0.315816 -0.046956   \n",
       "2023-11-30  0.016534  0.164337  0.116031  ...  0.002475  0.315816 -0.046956   \n",
       "2023-12-31  0.016534  0.164337  0.116031  ...  0.002475  0.315816 -0.046956   \n",
       "2024-01-31  0.006127 -0.051162  0.014578  ... -0.002530  0.193886 -0.084224   \n",
       "\n",
       "                  WH        WR        WS        WT         Y        ZC  \\\n",
       "t                                                                        \n",
       "2010-01-31       NaN -0.270878 -0.094524 -0.076336 -0.049417       NaN   \n",
       "2010-02-28       NaN -0.270878 -0.094524 -0.076336 -0.049417       NaN   \n",
       "2010-03-31       NaN -0.270878 -0.094524 -0.076336 -0.049417       NaN   \n",
       "2010-04-30       NaN -0.207353 -0.039900 -0.133085 -0.057012       NaN   \n",
       "2010-05-31       NaN -0.207353 -0.039900 -0.133085 -0.057012       NaN   \n",
       "...              ...       ...       ...       ...       ...       ...   \n",
       "2023-09-30 -0.126986  0.047562 -0.055678 -0.019480  0.055833 -0.398606   \n",
       "2023-10-31 -0.126986 -0.101608 -0.055678 -0.019480  0.134500 -0.398606   \n",
       "2023-11-30 -0.126986 -0.101608 -0.055678 -0.019480  0.134500 -0.398606   \n",
       "2023-12-31 -0.126986 -0.101608 -0.055678 -0.019480  0.134500 -0.398606   \n",
       "2024-01-31 -0.126986  0.016949 -0.055678 -0.019480  0.134327 -0.398606   \n",
       "\n",
       "                  ZN  \n",
       "t                     \n",
       "2010-01-31 -0.103201  \n",
       "2010-02-28 -0.103201  \n",
       "2010-03-31 -0.103201  \n",
       "2010-04-30 -0.111592  \n",
       "2010-05-31 -0.111592  \n",
       "...              ...  \n",
       "2023-09-30  0.084081  \n",
       "2023-10-31  0.094958  \n",
       "2023-11-30  0.094958  \n",
       "2023-12-31  0.094958  \n",
       "2024-01-31  0.035958  \n",
       "\n",
       "[169 rows x 77 columns]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "展期率01一月因子 = 展期率01.resample(tp1).mean().resample(tp).last().fillna(method='ffill')\n",
    "展期率01一月因子 = 展期率01.resample(tp1).mean().resample(tp).last().fillna(method='ffill')\n",
    "展期率01一月因子"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "28a8887a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c1e7213b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "17c91751",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "c5667f80",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>AG</th>\n",
       "      <th>AL</th>\n",
       "      <th>AP</th>\n",
       "      <th>AU</th>\n",
       "      <th>B</th>\n",
       "      <th>BB</th>\n",
       "      <th>BC</th>\n",
       "      <th>BU</th>\n",
       "      <th>C</th>\n",
       "      <th>...</th>\n",
       "      <th>TS</th>\n",
       "      <th>UR</th>\n",
       "      <th>V</th>\n",
       "      <th>WH</th>\n",
       "      <th>WR</th>\n",
       "      <th>WS</th>\n",
       "      <th>WT</th>\n",
       "      <th>Y</th>\n",
       "      <th>ZC</th>\n",
       "      <th>ZN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-01-31</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>...</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-28</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>...</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-03-31</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>...</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-30</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>...</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-05-31</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>...</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-08-31</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-09-30</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-10-31</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-11-30</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>168 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                A     AG     AL     AP     AU     B    BB    BC     BU      C  \\\n",
       "t                                                                               \n",
       "2010-01-31   True   True   True   True   True  True  True  True   True   True   \n",
       "2010-02-28   True   True   True   True   True  True  True  True   True   True   \n",
       "2010-03-31   True   True   True   True   True  True  True  True   True   True   \n",
       "2010-04-30   True   True   True   True   True  True  True  True   True   True   \n",
       "2010-05-31   True   True   True   True   True  True  True  True   True   True   \n",
       "...           ...    ...    ...    ...    ...   ...   ...   ...    ...    ...   \n",
       "2023-08-31  False  False  False  False  False  True  True  True  False  False   \n",
       "2023-09-30  False  False  False  False  False  True  True  True  False  False   \n",
       "2023-10-31  False  False  False  False  False  True  True  True  False  False   \n",
       "2023-11-30  False  False  False  False  False  True  True  True  False  False   \n",
       "2023-12-31  False  False  False  False  False  True  True  True  False  False   \n",
       "\n",
       "            ...     TS     UR      V    WH    WR    WS    WT      Y    ZC  \\\n",
       "t           ...                                                             \n",
       "2010-01-31  ...   True   True   True  True  True  True  True   True  True   \n",
       "2010-02-28  ...   True   True   True  True  True  True  True   True  True   \n",
       "2010-03-31  ...   True   True   True  True  True  True  True   True  True   \n",
       "2010-04-30  ...   True   True   True  True  True  True  True   True  True   \n",
       "2010-05-31  ...   True   True   True  True  True  True  True   True  True   \n",
       "...         ...    ...    ...    ...   ...   ...   ...   ...    ...   ...   \n",
       "2023-08-31  ...  False  False  False  True  True  True  True  False  True   \n",
       "2023-09-30  ...  False  False  False  True  True  True  True  False  True   \n",
       "2023-10-31  ...  False  False  False  True  True  True  True  False  True   \n",
       "2023-11-30  ...  False  False  False  True  True  True  True  False  True   \n",
       "2023-12-31  ...  False  False  False  True  True  True  True  False  True   \n",
       "\n",
       "               ZN  \n",
       "t                  \n",
       "2010-01-31   True  \n",
       "2010-02-28   True  \n",
       "2010-03-31   True  \n",
       "2010-04-30   True  \n",
       "2010-05-31   True  \n",
       "...           ...  \n",
       "2023-08-31  False  \n",
       "2023-09-30  False  \n",
       "2023-10-31  False  \n",
       "2023-11-30  False  \n",
       "2023-12-31  False  \n",
       "\n",
       "[168 rows x 77 columns]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "过滤因子 = 交易额过滤条件.resample(tp0).last()\n",
    "基差因子 = 基差率01.rolling(120).mean().resample(tp0).last()\n",
    "(基差因子*过滤因子).replace(0,np.nan) != 基差因子.where(过滤因子)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "5008130e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>AG</th>\n",
       "      <th>AL</th>\n",
       "      <th>AP</th>\n",
       "      <th>AU</th>\n",
       "      <th>B</th>\n",
       "      <th>BB</th>\n",
       "      <th>BC</th>\n",
       "      <th>BU</th>\n",
       "      <th>C</th>\n",
       "      <th>...</th>\n",
       "      <th>TS</th>\n",
       "      <th>UR</th>\n",
       "      <th>V</th>\n",
       "      <th>WH</th>\n",
       "      <th>WR</th>\n",
       "      <th>WS</th>\n",
       "      <th>WT</th>\n",
       "      <th>Y</th>\n",
       "      <th>ZC</th>\n",
       "      <th>ZN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-01-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-02-28</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-03-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-30</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-05-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-08-31</th>\n",
       "      <td>0.000117</td>\n",
       "      <td>0.000018</td>\n",
       "      <td>0.000155</td>\n",
       "      <td>-0.000805</td>\n",
       "      <td>0.000002</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000013</td>\n",
       "      <td>0.000302</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000032</td>\n",
       "      <td>0.001674</td>\n",
       "      <td>-0.000179</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000243</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000025</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-09-30</th>\n",
       "      <td>-0.000097</td>\n",
       "      <td>0.000005</td>\n",
       "      <td>0.000227</td>\n",
       "      <td>-0.000590</td>\n",
       "      <td>0.000010</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000016</td>\n",
       "      <td>0.000140</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000028</td>\n",
       "      <td>0.001773</td>\n",
       "      <td>-0.000257</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000067</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-10-31</th>\n",
       "      <td>-0.000140</td>\n",
       "      <td>0.000014</td>\n",
       "      <td>0.000214</td>\n",
       "      <td>-0.000071</td>\n",
       "      <td>0.000017</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000047</td>\n",
       "      <td>0.000009</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000028</td>\n",
       "      <td>0.001182</td>\n",
       "      <td>-0.000229</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000013</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-11-30</th>\n",
       "      <td>-0.000457</td>\n",
       "      <td>0.000026</td>\n",
       "      <td>0.000061</td>\n",
       "      <td>0.000143</td>\n",
       "      <td>0.000010</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000005</td>\n",
       "      <td>0.000104</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000030</td>\n",
       "      <td>0.000784</td>\n",
       "      <td>-0.000315</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000060</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>-0.000420</td>\n",
       "      <td>0.000020</td>\n",
       "      <td>0.000051</td>\n",
       "      <td>0.000554</td>\n",
       "      <td>0.000004</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000137</td>\n",
       "      <td>-0.000038</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.000023</td>\n",
       "      <td>0.000265</td>\n",
       "      <td>-0.000352</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000050</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000012</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>168 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                   A        AG        AL        AP        AU   B  BB  BC  \\\n",
       "t                                                                          \n",
       "2010-01-31       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-02-28       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-03-31       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-04-30       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-05-31       NaN       NaN       NaN       NaN       NaN NaN NaN NaN   \n",
       "...              ...       ...       ...       ...       ...  ..  ..  ..   \n",
       "2023-08-31  0.000117  0.000018  0.000155 -0.000805  0.000002 NaN NaN NaN   \n",
       "2023-09-30 -0.000097  0.000005  0.000227 -0.000590  0.000010 NaN NaN NaN   \n",
       "2023-10-31 -0.000140  0.000014  0.000214 -0.000071  0.000017 NaN NaN NaN   \n",
       "2023-11-30 -0.000457  0.000026  0.000061  0.000143  0.000010 NaN NaN NaN   \n",
       "2023-12-31 -0.000420  0.000020  0.000051  0.000554  0.000004 NaN NaN NaN   \n",
       "\n",
       "                  BU         C  ...        TS        UR         V  WH  WR  WS  \\\n",
       "t                               ...                                             \n",
       "2010-01-31       NaN       NaN  ...       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-02-28       NaN       NaN  ...       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-03-31       NaN       NaN  ...       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-04-30       NaN       NaN  ...       NaN       NaN       NaN NaN NaN NaN   \n",
       "2010-05-31       NaN       NaN  ...       NaN       NaN       NaN NaN NaN NaN   \n",
       "...              ...       ...  ...       ...       ...       ...  ..  ..  ..   \n",
       "2023-08-31  0.000013  0.000302  ... -0.000032  0.001674 -0.000179 NaN NaN NaN   \n",
       "2023-09-30 -0.000016  0.000140  ... -0.000028  0.001773 -0.000257 NaN NaN NaN   \n",
       "2023-10-31  0.000047  0.000009  ... -0.000028  0.001182 -0.000229 NaN NaN NaN   \n",
       "2023-11-30 -0.000005  0.000104  ... -0.000030  0.000784 -0.000315 NaN NaN NaN   \n",
       "2023-12-31 -0.000137 -0.000038  ... -0.000023  0.000265 -0.000352 NaN NaN NaN   \n",
       "\n",
       "            WT         Y  ZC        ZN  \n",
       "t                                       \n",
       "2010-01-31 NaN       NaN NaN       NaN  \n",
       "2010-02-28 NaN       NaN NaN       NaN  \n",
       "2010-03-31 NaN       NaN NaN       NaN  \n",
       "2010-04-30 NaN       NaN NaN       NaN  \n",
       "2010-05-31 NaN       NaN NaN       NaN  \n",
       "...         ..       ...  ..       ...  \n",
       "2023-08-31 NaN  0.000243 NaN -0.000025  \n",
       "2023-09-30 NaN  0.000067 NaN  0.000026  \n",
       "2023-10-31 NaN  0.000013 NaN -0.000017  \n",
       "2023-11-30 NaN -0.000060 NaN -0.000019  \n",
       "2023-12-31 NaN  0.000050 NaN -0.000012  \n",
       "\n",
       "[168 rows x 77 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "基差因子.where(过滤因子)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2658a7f2",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "be3feefb",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a0a9b80c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2265c88f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8ca1d8e5",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "51b9a3f0",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x212b008aa30>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "tp0 = 'M'\n",
    "tp1 = 'Q-JAN'\n",
    "tp2 = 'Q-FEB'\n",
    "tp3 = 'Q-MAR'\n",
    "\n",
    "rr = 收益率0.resample(tp0).sum().shift(-1)\n",
    "# xx = 跳开0.abs().rolling(120).mean().resample(tp0).last()\n",
    "# xx = 跳开0.resample(tp3).mean().resample(tp0).last().fillna(method='ffill')\n",
    "xx = 基差均值.rolling(120).sum().resample(tp0).last()\n",
    "xx = xx.rank(1,pct=True)\n",
    "xx = (xx>0.8)*1 + (xx<0.2)*-1\n",
    "ret = (xx*rr).sum(1)/(xx!=0).sum(1)\n",
    "ret.cumsum().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "4ab7b840",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.1503732172352483"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "3.46*ret['2012-01-01':].mean()/ret['2012-01-01':].std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8dc5438c",
   "metadata": {},
   "outputs": [],
   "source": [
    "跳开0.resample(tp3).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2f950183",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2247e338",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dc5a9c5c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "274b6c18",
   "metadata": {},
   "outputs": [],
   "source": [
    "xx = 跳开0.resample(tp3).mean().resample(tp0).last().fillna(method='ffill')\n",
    "xx = xx.rank(1,pct=True)\n",
    "xx1 = (xx>0.8)*-1 + (xx<0.2)*1\n",
    "\n",
    "xx = 跳开0.resample(tp3).sum().resample(tp0).last().fillna(method='ffill')\n",
    "xx = xx.rank(1,pct=True)\n",
    "xx2 = (xx>0.8)*-1 + (xx<0.2)*1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "11eb684a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>AG</th>\n",
       "      <th>AL</th>\n",
       "      <th>AP</th>\n",
       "      <th>AU</th>\n",
       "      <th>B</th>\n",
       "      <th>BB</th>\n",
       "      <th>BC</th>\n",
       "      <th>BU</th>\n",
       "      <th>C</th>\n",
       "      <th>...</th>\n",
       "      <th>TS</th>\n",
       "      <th>UR</th>\n",
       "      <th>V</th>\n",
       "      <th>WH</th>\n",
       "      <th>WR</th>\n",
       "      <th>WS</th>\n",
       "      <th>WT</th>\n",
       "      <th>Y</th>\n",
       "      <th>ZC</th>\n",
       "      <th>ZN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-03-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-30</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-05-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-06-30</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-07-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-08-31</th>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-09-30</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-10-31</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-11-30</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>166 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            A  AG  AL  AP  AU  B  BB  BC  BU  C  ...  TS  UR  V  WH  WR  WS  \\\n",
       "t                                                ...                          \n",
       "2010-03-31  0   0   0   0   1  0   0   0   0 -1  ...   0   0  0   0   0   0   \n",
       "2010-04-30  0   0   0   0   1  0   0   0   0 -1  ...   0   0  0   0   0   0   \n",
       "2010-05-31  0   0   0   0   1  0   0   0   0 -1  ...   0   0  0   0   0   0   \n",
       "2010-06-30  0   0   1   0  -1  0   0   0   0  0  ...   0   0 -1   0   0  -1   \n",
       "2010-07-31  0   0   1   0  -1  0   0   0   0  0  ...   0   0 -1   0   0  -1   \n",
       "...        ..  ..  ..  ..  .. ..  ..  ..  .. ..  ...  ..  .. ..  ..  ..  ..   \n",
       "2023-08-31  0  -1  -1  -1  -1  0  -1   0   0  0  ...   0  -1  1   1   1   0   \n",
       "2023-09-30  0   1   0   0   1  0  -1   1   0  0  ...   0  -1  0   1   0   1   \n",
       "2023-10-31  0   1   0   0   1  0  -1   1   0  0  ...   0  -1  0   1   0   1   \n",
       "2023-11-30  0   1   0   0   1  0  -1   1   0  0  ...   0  -1  0   1   0   1   \n",
       "2023-12-31  0   0   0   1   0  0  -1   0   0  0  ...   0   1  0   1   0   0   \n",
       "\n",
       "            WT  Y  ZC  ZN  \n",
       "t                          \n",
       "2010-03-31   1  0   0   1  \n",
       "2010-04-30   1  0   0   1  \n",
       "2010-05-31   1  0   0   1  \n",
       "2010-06-30   0  0   0   1  \n",
       "2010-07-31   0  0   0   1  \n",
       "...         .. ..  ..  ..  \n",
       "2023-08-31   1  0   1   0  \n",
       "2023-09-30   1  0   1   0  \n",
       "2023-10-31   1  0   1   0  \n",
       "2023-11-30   1  0   1   0  \n",
       "2023-12-31   1  0   1   0  \n",
       "\n",
       "[166 rows x 77 columns]"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xx1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "74577620",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>AG</th>\n",
       "      <th>AL</th>\n",
       "      <th>AP</th>\n",
       "      <th>AU</th>\n",
       "      <th>B</th>\n",
       "      <th>BB</th>\n",
       "      <th>BC</th>\n",
       "      <th>BU</th>\n",
       "      <th>C</th>\n",
       "      <th>...</th>\n",
       "      <th>TS</th>\n",
       "      <th>UR</th>\n",
       "      <th>V</th>\n",
       "      <th>WH</th>\n",
       "      <th>WR</th>\n",
       "      <th>WS</th>\n",
       "      <th>WT</th>\n",
       "      <th>Y</th>\n",
       "      <th>ZC</th>\n",
       "      <th>ZN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-03-31</th>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-30</th>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-05-31</th>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-06-30</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-07-31</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-08-31</th>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-09-30</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-10-31</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-11-30</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2023-12-31</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>166 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            A  AG  AL  AP  AU  B  BB  BC  BU  C  ...  TS  UR  V  WH  WR  WS  \\\n",
       "t                                                ...                          \n",
       "2010-03-31 -1   0   1   0   1 -1   0   0   0 -1  ...   0   0  0   0  -1   0   \n",
       "2010-04-30 -1   0   1   0   1 -1   0   0   0 -1  ...   0   0  0   0  -1   0   \n",
       "2010-05-31 -1   0   1   0   1 -1   0   0   0 -1  ...   0   0  0   0  -1   0   \n",
       "2010-06-30  0   0   1   0  -1  1   0   0   0  0  ...   0   0 -1   0   1   0   \n",
       "2010-07-31  0   0   1   0  -1  1   0   0   0  0  ...   0   0 -1   0   1   0   \n",
       "...        ..  ..  ..  ..  .. ..  ..  ..  .. ..  ...  ..  .. ..  ..  ..  ..   \n",
       "2023-08-31  0  -1  -1  -1  -1  0   0   0   1  0  ...   0  -1  1   0   1   0   \n",
       "2023-09-30  0   1   0   1   1  0   0   1   0  0  ...   0  -1  0   0   0   0   \n",
       "2023-10-31  0   1   0   1   1  0   0   1   0  0  ...   0  -1  0   0   0   0   \n",
       "2023-11-30  0   1   0   1   1  0   0   1   0  0  ...   0  -1  0   0   0   0   \n",
       "2023-12-31  0   1  -1   1   0  0   0   0   0  1  ...   0   1  0   0  -1   0   \n",
       "\n",
       "            WT  Y  ZC  ZN  \n",
       "t                          \n",
       "2010-03-31   1 -1   0   1  \n",
       "2010-04-30   1 -1   0   1  \n",
       "2010-05-31   1 -1   0   1  \n",
       "2010-06-30   1  1   0   1  \n",
       "2010-07-31   1  1   0   1  \n",
       "...         .. ..  ..  ..  \n",
       "2023-08-31   0  0   0   1  \n",
       "2023-09-30   0  0   0   0  \n",
       "2023-10-31   0  0   0   0  \n",
       "2023-11-30   0  0   0   0  \n",
       "2023-12-31   0  0   0   0  \n",
       "\n",
       "[166 rows x 77 columns]"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xx2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4dbca059",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eb758945",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "d3f0a481",
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "'交易额总额'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[1;32mD:\\anaconda\\lib\\site-packages\\pandas\\core\\indexes\\base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m   3079\u001b[0m             \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3080\u001b[1;33m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   3081\u001b[0m             \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;31mKeyError\u001b[0m: '交易额总额'",
      "\nThe above exception was the direct cause of the following exception:\n",
      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-7-9e1bfaa4dffe>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mdff01\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'交易额0'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mddds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[0mdff02\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'交易额1'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mddds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mdff03\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'交易额总额'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mddds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mdff01\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m期货前缀ss2\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m<ipython-input-7-9e1bfaa4dffe>\u001b[0m in \u001b[0;36m<listcomp>\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mdff01\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'交易额0'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mddds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[0mdff02\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'交易额1'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mddds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mdff03\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'交易额总额'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mddds\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mdff01\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m期货前缀ss2\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\anaconda\\lib\\site-packages\\pandas\\core\\frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m   3022\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3023\u001b[0m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3024\u001b[1;33m             \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   3025\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3026\u001b[0m                 \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\anaconda\\lib\\site-packages\\pandas\\core\\indexes\\base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m   3080\u001b[0m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3081\u001b[0m             \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3082\u001b[1;33m                 \u001b[1;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   3083\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3084\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mKeyError\u001b[0m: '交易额总额'"
     ]
    }
   ],
   "source": [
    "dff01 = pd.concat([x['交易额0'] for x in ddds],axis=1)\n",
    "dff02 = pd.concat([x['交易额1'] for x in ddds],axis=1)\n",
    "dff03 = pd.concat([x['交易额总额'] for x in ddds],axis=1)\n",
    "\n",
    "dff01.columns = 期货前缀ss2\n",
    "dff02.columns = 期货前缀ss2\n",
    "dff03.columns = 期货前缀ss2\n",
    "\n",
    "s_date = '2010-01-01'\n",
    "d_date = '2023-12-30'\n",
    "\n",
    "dff01 = dff01[s_date:d_date]\n",
    "dff02 = dff02[s_date:d_date]\n",
    "dff03 = dff03[s_date:d_date]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "944f1192",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
